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"/>

更多相关文章

  1. android 使用intent传递参数实现乘法计算
  2. Android中贪吃蛇游戏的学习(三)
  3. android:visibility="gone"
  4. Android的intent之间复杂参数的传递
  5. Android(安卓)自动化测试—robotium(八)拖拽
  6. Android(安卓)activity 参数传递
  7. Android配置----Eclipse+BlueStacks调试Android应用
  8. mybatisplus的坑 insert标签insert into select无参数问题的解决
  9. Python技巧匿名函数、回调函数和高阶函数

随机推荐

  1. android 如何保护我们的app(一)(干货)
  2. Android(安卓)判定网络连接状态 以及监听
  3. ndk编译 错误:dlopen failed:cannot loca
  4. Android(安卓)/system/bin/pm脚本乱码分
  5. 从0系统学Android--3.2四种基本布局
  6. android通过指定目录获取该目录下所有类(
  7. 欧盟就谷歌Android业务垄断指控咨询其竞
  8. Android(安卓)游戏开发之主角的移动与地
  9. 4.2以上版本的sdk使用webview js和java代
  10. 关于Android中使用Handler造成内存泄露的