首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Android画图之Bitmap(一) 博客分类: Android Android

Android画图之Bitmap(一) 博客分类: Android Android

作者头像
chroya
发布2018-10-31 17:46:05
1.7K0
发布2018-10-31 17:46:05
举报
文章被收录于专栏:封碎封碎

    最近写电子书程序,设计到对图像的处理,主要是对 Bitmap 的处理,所以有一点小小的心得,拿出来跟大家分享一下。

要把一个 Bitmap 画到 View 上,必须用到的类有 android.graphics.Canvas, 和 android.graphics.Bitmap 。方法很简单,在 View 里面,重载 onDraw(Canvas canvas) 方法,然后用 canvas.drawBitmap() 方法,将其画在屏幕上。

public class MyView extends View {
	
	private Bitmap mBitmap;
	
	public MyView(Context context) {
		super(context);
		initialize();
	}

	private void initialize() {
		
		Bitmap bmp = ((BitmapDrawable)getResources().getDrawable(R.drawable.show)).getBitmap();
		
		mBitmap = bmp;
		
	}
	
	@Override protected void onDraw(Canvas canvas) {
//		super.onDraw(canvas);  //当然,如果界面上还有其他元素需要绘制,只需要将这句话写上就行了。
		canvas.drawBitmap(mBitmap, 0, 0, null);
	}
}

 结果:

结果
结果

原图:

原图
原图

虽然这仅仅只是第一步,但是很鼓舞人心呢,呵呵。

上面是直接将原图画在屏幕上,没有任何处理,因为图片比屏幕大,所以超出的部分看不到。我们试着将图片拉伸以填满整个屏幕。

public class MyView extends View {
	
	private Bitmap mBitmap;
	private Matrix mMatrix = new Matrix();
	
	private static int mScreenWidth;
	private static int mScreenHeight;
	
	public MyView(Context context) {
		super(context);
		initialize();
	}

	private void initialize() {
		DisplayMetrics dm = getResources().getDisplayMetrics();
		mScreenWidth = dm.widthPixels;
		mScreenHeight = dm.heightPixels;
		
		Bitmap bmp = ((BitmapDrawable)getResources().getDrawable(R.drawable.show)).getBitmap();
		mBitmap = Bitmap.createScaledBitmap(bmp, mScreenWidth, mScreenHeight, true);		
	}
	
	@Override protected void onDraw(Canvas canvas) {
//		super.onDraw(canvas);  //当然,如果界面上还有其他元素需要绘制,只需要将这句话写上就行了。
		canvas.drawBitmap(mBitmap, 0, 0, null);
	}
}

 显示结果:

充满屏幕
充满屏幕

      下面一篇将介绍对Bitmap的一些操作。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2010-07-11 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档