Android 画图(干货)

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);//绘制图片
	}
}


2.画图类映射到布局文件

	<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+

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值