您的位置:首页 > 移动开发 > Android开发

Android 自定义视图

2015-06-17 19:48 441 查看
Android自定义视图很简单,新建类继承于android.view.View类,实现onDraw()函数,然后直接在layout里面使用即可

需要注意的几点:自定义视图构造函数要实现带有AttributeSet参数那个,要不一直报错.

上代码:

public class MyView extends View {

private Paint myPaint;

private DisplayMetrics dm;

public MyView(Context context, AttributeSet attrs) {

super(context, attrs);

myPaint=new Paint();

myPaint.setColor(Color.RED);

myPaint.setTextSize(30);

dm=new DisplayMetrics();

}

@Override

protected void onDraw(Canvas canvas) {

super.onDraw(canvas);

WindowManager wm = (WindowManager) getContext()

.getSystemService(Context.WINDOW_SERVICE);

wm.getDefaultDisplay().getMetrics(dm);

myPaint.setStyle(Style.FILL);

canvas.drawLine(20, 20, dm.widthPixels-40, 20, myPaint);//4个参数分别是起始x、y坐标,终点x、y坐标

canvas.drawLine(20, 220, dm.widthPixels-40, 220, myPaint);

canvas.drawLine(20, 420, dm.widthPixels-40, 420, myPaint);

canvas.drawLine((dm.widthPixels-40)/2, 20, (dm.widthPixels-40)/2, 420, myPaint);

myPaint.setColor(Color.GREEN);

canvas.drawRect(20, 20, 250, 100, myPaint);//4个参数分别是左、上、右、下的坐标值

canvas.drawCircle(250, 300, 100, myPaint);//画圆周,3个参数分别是圆心X轴坐标,Y轴坐标,以及圆的半径

}

}

在layout引用:<com.findsoft.customerview.view.MyView

android:layout_width="wrap_content"

android:layout_height="wrap_content"/>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: