这个不同于ImageView控件,这个不是控件,是画在画布上的,类要继承与View。将图片导入到res文件夹的三个文件下面。
得到资源
得到图片的方式为:
myPic1=((BitmapDrawable)getResources(); getDrawable(R.drawable.p1)).getBitmap();
绘制图片
在onDraw(Canvas canvas)方法中绘制图片,
可以直接绘制:canvas.drawBitmap(myPic1, 0,0,null);
第一个参数是图画资源
后两个是在屏幕上的坐标,应该是左上角的坐标
图片的缩放
public void drawBitmap(Bitmapbitmap, Rect src, Rect dst,Paint paint)
第一个Rect是图片的裁剪区域
第二个Rect是屏幕的裁剪区域
也就是把预定的图片区域显示在预定的屏幕区域上面,这是一种绘制图片的方式,但也可以实
通过这个方式实现缩放效果
例如:
canvas.drawBitmap(mBitmap, new Rect(100, 100, 300, 300), new Rect(100, 100,200, 200), null);
这里将 mBitmap 的 (100,100) 到 (300,300) 区域拿出来,自动缩放并画到屏幕的 (100,100) 到 (200,200) 区域。
=====》
2 通过Matrix实现缩放效果
具体实现跟下面的图片旋转的实现方式一样,只是用了Matrix的另一个方法,
public void setScale (float sx, float sy)
只需将下面旋转效果的代码中setRotate()方法替换为
//设置缩放 matrix.setScale(scale, scale);
其中scale为定义的缩放倍率:float scale = 1.0f;调节这个参数的大小就可以实现缩放。 用这个方法会构造新的Bitmap,会消耗内存,所以效率没有上面第一种方法的高。
图片的旋转
需要使用Matrix,他包含3*3的矩阵,专门用于图像变换匹配,必须被初始化,通过reset方法实现。通过setRotate设置旋转的角度,然后通过createBitmap()创建一个经过旋转等处理的Bitmap对象,然后将Bitmap画到屏幕上即实现了旋转效果
- protected void onDraw(Canvas canvas)
- {
- super.onDraw(canvas);
- //重置Matrix对象
- matrix.reset();
- //设置旋转
- matrix.setRotate(angle);
- //按matrix的旋转构造新的bitmap
- Bitmap bitmap2 = Bitmap.createBitmap(bitmap, 0, 0, bitmap.getWidth(), bitmap.getHeight(), matrix, true);
- //绘制旋转之后的图像
- canvas.drawBitmap(bitmap2,(320-bitmap.getWidth())/2,(430-bitmap.getHeight())/2, null);
- }
相关推荐
我就废话不多说了,大家还是直接看代码吧~ //Uri.parse(file://+result.getImage().getCompressPath())) String path=uri.... Bitmap bitmap= BitmapFactory.decodeFile(path); int height= bitmap.get
学习Java的源码时对Bitmap进行了细致研究,因此做了这么一个Bitmap使用方法的完整APP,压缩包里面是所有的源码,可在ben文件夹中找到此APP!
安卓Android源码——(Bitmap位图渲染与操作).zip
Android中bitmap转化成string格式的工具类,主要用于联网操作传递数据情境中
c语言实现的位图bitmap,简单易用,如有更多需要,可以方便添加新的操作。
一个比较好用的Bitmap Image Reader Writer Library 。该库只有一个hpp文件,跟CImg有几分相似(但功能没有CImg丰富,可满足日常开发的基本需求足够)。该库不仅可以很方面的进行bmp文件的读写操作,而且还可以进行...
Bitmap的使用,加载Drawable、Assert、SDcard上的图片,进行变换、压缩等操作,Bitmap和Drawable相互转换,Bitmap和数组的相互转换。
这里头有4个程序。有代码。有debug。有报告册 5分一点都不亏,物有所值。 代码带有部分注解。 如有不懂的地方负责售后。 直接评论就行了。...2,初步学习操作系统的同学; 新人上传,如有意见可以评价我。
NULL 博文链接:https://410063005.iteye.com/blog/1565595
本文将对它的一些常见操作进行总结,下面话不多说了,来一起看看详细的介绍吧 Android Bitmap 相关操作 常见的几个操作:缩放,裁剪,旋转,偏移 很多操作需要 Matrix 来支持;Matrix 通过矩阵来处理位图...
C#中Bitmap类实现对图像操作的一些方法
源码参考,欢迎下载
Android Bitmap位图渲染与操作源码.rar
用mFC对位图进行擦作,实现位图操作,主页是DC绘制位图的简单例子,希望可以对大家有用
Android开发、Bitmap 压缩相关操作(计算图片的压缩比率 计算图片的压缩比率 从Resources中加载图片 通过传入的bitmap,进行压缩,得到符合标准的bitmap 从SD卡上加载图片 删除临时图片)、文件压缩(压缩成文件 ...
//Bitmap类,特点紧约型数据结构,GetPixel效率高,放弃调色板,自动支持4种色深,特有的12位颜色更接近人眼可识别颜色数目;有多种缩放,色深转换,拷贝,剪切,和hBitmap转换,显示等功能;支持串行化。支持1,12,...
这是一个用于C++ MFC开发的Bitmap图片操作类,在文件中叫CBitmapEx,可用于放大,缩小,翻转,过渡和其他有用的功能,有兴趣的朋友可以下载看看。 部分public method: // // void Create(long width, long height); /...