欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

android上利用bit地图切割图片

更新时间: 2014-05-17 20:12:36 责任编辑: Author_N7

 

Android下利用Bitmap切割图片
    在自己自定义的一个组件中由于需要用图片显示数字编号,而当前图片就只有一张,上面有0-9是个数字,于是不得不考虑将其中一个个的数字切割下来,需要显示什么数字,只需要组合一下就好了。
    下面是程序的关键代码:
    在MyView(继承于View)类中的重写的onDraw(Canvas canvas)方法中,有如下代码段:
Bitmap resource = BitmapFactory.decodeResource(this.getResources(), R.drawable.num);
		Bitmap zero = Bitmap.createBitmap(resource, 0, 0, 12, 12);
		Bitmap one = Bitmap.createBitmap(resource, 12, 0, 12, 12);
		Bitmap two = Bitmap.createBitmap(resource, 24, 0, 12, 12);
		Bitmap three = Bitmap.createBitmap(resource, 36, 0, 12, 12);
		Bitmap four = Bitmap.createBitmap(resource, 48, 0, 12, 12);
		Bitmap five = Bitmap.createBitmap(resource, 60, 0, 12, 12);
		Bitmap six = Bitmap.createBitmap(resource, 72, 0, 12, 12);
		Bitmap seven = Bitmap.createBitmap(resource, 84, 0, 12, 12);
		Bitmap eight = Bitmap.createBitmap(resource, 96, 0, 12, 12);
		Bitmap nine = Bitmap.createBitmap(resource, 108, 0, 12, 12);

    其中R.drawable.num为数字图片,每个数字占据的像素为12*12,Bitmap.createBitmap方法中的五个参数意义分别为:需要切割的图片资源、切割起始点的X坐标、切割起始点的Y坐标、切割多宽、切割多高。
    切割下来之后就非常简单的就可以显示各种数字了,例如:用String类型的number表示需要显示的数字,则
char nums[] = number.toCharArray();
		for(int i = 0; i < nums.length; i ++) {
			if(nums[i] == '0') {
				canvas.drawBitmap(zero, i * 12, 0, mPaint);
			} else if(nums[i] == '1') {
				canvas.drawBitmap(one, i * 12, 0, mPaint);
			} else if(nums[i] == '2') {
				canvas.drawBitmap(two, i * 12, 0, mPaint);
			} else if(nums[i] == '3') {
				canvas.drawBitmap(three, i * 12, 0, mPaint);
			} else if(nums[i] == '4') {
				canvas.drawBitmap(four, i * 12, 0, mPaint);
			} else if(nums[i] == '5') {
				canvas.drawBitmap(five, i * 12, 0, mPaint);
			} else if(nums[i] == '6') {
				canvas.drawBitmap(six, i * 12, 0, mPaint);
			} else if(nums[i] == '7') {
				canvas.drawBitmap(seven, i * 12, 0, mPaint);
			} else if(nums[i] == '8') {
				canvas.drawBitmap(eight, i * 12, 0, mPaint);
			} else if(nums[i] == '9') {
				canvas.drawBitmap(nine, i * 12, 0, mPaint);
			}
		}

    其中canvas为画布,drawBitmap方法中的四个参数的意义分别为:需要绘制的图片资源、在画布上绘制的起始点的X坐标、Y坐标、画笔。其中画笔在此处可以不进行任何设置,只需new一个出来即可,Paint mPaint = new Paint(); 1 楼 maoning20080808 2011-08-08   可以给个demo吗??谢谢了。。  976929421@qq.com 2 楼 WH_Always 2011-09-29   最近在学习bitmap,请问lz能给个代码不?非常感谢!!1274214867@qq.com 3 楼 weiyage 2012-03-06   谢谢 学习了,可以用来做百叶窗了
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-05-17 20:12:36
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/825361/
本文WWW.DOC100.NET DOC100.NET版权所有。