1.1.画图
public class MyView extends View{
public MyView(Context context, AttributeSet attrs) {//构造器
super(context, attrs);
}
protected void onDraw(Canvas canvas) {//重写的绘制方法
super.onDraw(canvas);
canvas.drawColor(Color.BLACK);//绘制黑色背景
Paint paint = new Paint();//创建画笔
paint.setColor(Color.RED);//设置画笔颜色为红色
//画矩形
canvas.drawRect(10, 10, 110, 110, paint);//画矩形:左上角坐标(10,10),右下角坐标(110,110),画笔
//写字
canvas.drawText("Hello World", 10, 130, paint);//字符串,(10,130),画笔
RectF rf1 = new RectF(10, 130, 110, 230);//定义一个矩形
//画弧
canvas.drawArc(rf1, 0, 45, true, paint);//在矩形中画弧,(起始角度,终止角度),是否连接圆心,画笔
//画线
canvas.drawLine(150, 10, 250, 110, paint);
RectF rf2 = new RectF(150, 130, 250, 230);//定义一个矩形
//画圆
canvas.drawOval(rf2, paint);
}
}
1.2.引图
public class MyView extends View{
Bitmap myBitmap;//图片的引用
Paint paint;//画笔的引用
public MyView(Context context, AttributeSet attrs) {//构造器
super(context, attrs);
this.initBitmap();
}
public void initBitmap(){
paint = new Paint();//创建一个画笔
myBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.img);//获得图片资源
}
@Override
protected void onDraw(Canvas canvas) {//重写的绘制方法
super.onDraw(canvas);
paint.setAntiAlias(true);//打开抗锯齿,主要是降低失真,进行边缘柔滑处理
paint.setColor(Color.RED);//设置画笔为红色
paint.setTextSize(20);//设置画笔的大小
canvas.drawBitmap(myBitmap, 10, 10, paint);//绘制图片
}
}
<com.draw.MyView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>
3.启动
public class MainActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
}
PS:左上角为坐标原点。 →方向X+,↓方向Y+