灯火互联
管理员
管理员
  • 注册日期2011-07-27
  • 发帖数41778
  • QQ
  • 火币41290枚
  • 粉丝1086
  • 关注100
  • 终身成就奖
  • 最爱沙发
  • 忠实会员
  • 灌水天才奖
  • 贴图大师奖
  • 原创先锋奖
  • 特殊贡献奖
  • 宣传大使奖
  • 优秀斑竹奖
  • 社区明星
阅读:7912回复:0

android小记之自定义ImageView

楼主#
更多 发布于:2012-09-06 13:45


最近,BOSS拍板了,要做个拍照以后的图片FTP上传功能。

BOSS发话了,就可以动手呗。

按照用HTML结合CSS的话,有点审美的,就可以制作漂亮的相框了。

但我突然发现Android的ImageView的属性太不给力了,别说漂亮的相框,连加个边框都难。

还好,Android具有灵活多变的编码风格,可以自定义ImageView。为了简洁,下面的例子只是在ImageView上加了个边框而已,望启到抛砖引玉的效果。

首先,重写ImageView。
[java]
package org.xxx.picUpload.util;



import Android.content.Context;
import Android.graphics.Canvas;
import Android.graphics.Color;
import Android.graphics.Paint;
import Android.graphics.Rect;
import Android.util.AttributeSet;
import Android.widget.ImageView;

public class MyImageView extends ImageView {
    
    public MyImageView(Context context) {
        super(context);
        // TODO Auto-generated constructor stub
    }

    public MyImageView(Context context, AttributeSet attrs,
            int defStyle) {
        super(context, attrs, defStyle);
        // TODO Auto-generated constructor stub
    }

    public MyImageView(Context context, AttributeSet attrs) {
        super(context, attrs);
        // TODO Auto-generated constructor stub
    }
    
    @Override
    protected void onDraw(Canvas canvas) {   //这里就是重写的方法了,想画什么形状自己动手
        // TODO Auto-generated method stub
        super.onDraw(canvas);
        
        // 画边框
        Rect rec = canvas.getClipBounds();
        rec.bottom--;
        rec.right--;
        Paint paint = new Paint();
        paint.setColor(Color.GRAY);   //颜色
        paint.setStyle(Paint.Style.STROKE);
        paint.setStrokeWidth(5);
        canvas.drawRect(rec, paint);
    }
    
}


然后 在xml文件中直接。
[html]
<org.xxx.picUpload.util.MyImageView
        Android:id="@+id/imageView"    
        Android:layout_width="400px"
        Android:layout_height="200px"/>
有图有真相(图片预览):






喜欢0 评分0
游客

返回顶部