android中Bitmap用法(显示,保存,缩放,旋转)实例分析
程序员文章站
2023-11-27 19:02:16
本文实例讲述了android中bitmap用法。分享给大家供大家参考。具体如下:
在android sdk中可以支持的图片格式如下:png , jpg , gif和bmp...
本文实例讲述了android中bitmap用法。分享给大家供大家参考。具体如下:
在android sdk中可以支持的图片格式如下:png , jpg , gif和bmp。
1.bitmap的创建
借助于bitmapfactory。
1)资源中的图片
使用bitmapfactory获取位图
复制代码 代码如下:
bitmap bmp = bitmapfactory.decoderesource(this.getresources(), r.drawable.testimg);
或者是:
resources res=getresources(); //使用bitmapdrawable获取位图 //使用bitmapdrawable (inputstream is)构造一个bitmapdrawable; //使用bitmapdrawable类的getbitmap()获取得到位图; // 读取inputstream并得到位图 inputstream is=res.openrawresource(r.drawable.testimg); bitmapdrawable bmpdraw=new bitmapdrawable(is); bitmap bmp=bmpdraw.getbitmap();
2)sd卡中的图片
复制代码 代码如下:
bitmap bmp = bitmapfactory.decodefile("/sdcard/testbitmap/testimg.png")
2. 把 bitmap 保存在sdcard中
file fimage = new file("/sdcard/testbitmap/testimg.png"); fimage.createnewfile(); fileoutputstream istream = new fileoutputstream(fimage); bmp.compress(compressformat.png, 100, istream); istream.close(); fimage.close(); istream =null; fimage =null; //写到输出流里,就保存到文件了。
3.使用网络中的图片
//图片的链接地址 string imgurlstr = "http://tx.bdimg.com/sys/portrait/item/990e6271796a7a6c170c.jpg"; url imgurl = new url(imgurlstr); urlconnection conn = imgurl.openconnection(); conn.connect(); inputstream is = conn.getinputstream(); bufferedinputstream bis = new bufferedinputstream(is); //下载图片 bitmap bmp = bitmapfactory.decodestream(bis); //关闭stream bis.close(); is.close(); imgurl =null;
4.显示图片
1)转换为bitmapdrawable对象显示位图
// 转换为bitmapdrawable对象 bitmapdrawable bmpdraw=new bitmapdrawable(bmp); // 显示位图 imageview iv2 = (imageview)findviewbyid(r.id.imageview02); iv2.setimagedrawable(bmpdraw);
2)使用canvas类显示位图
复制代码 代码如下:
canvas.drawbitmap(bmp, 0, 0, null);
5.缩放位图
1)将一个位图按照需求重画一遍,画后的位图就是我们需要的了,与位图的显示几乎一样:
复制代码 代码如下:
drawbitmap(bitmap bitmap, rect src, rect dst, paint paint)
2)在原有位图的基础上,缩放原位图,创建一个新的位图:
复制代码 代码如下:
createbitmap(bitmap source, int x, int y, int width, int height, matrix m, boolean filter)
3)借助canvas的scale(float sx, float sy) ,不过要注意此时整个画布都缩放了。
4)借助matrix:
matrix matrix=new matrix(); matrix.postscale(0.2f, 0.2f); bitmap dstbmp=bitmap.createbitmap(bmp,0,0,bmp.getwidth(),bmp.getheight(),matrix,true); canvas.drawbitmap(dstbmp, 10, 10, null);
6.旋转位图
借助matrix或者canvas来实现。
matrix matrix=new matrix(); matrix.postrotate(45); bitmap dstbmp=bitmap.createbitmap(bmp,0,0,bmp.getwidth(), bmp.getheight(),matrix,true); canvas.drawbitmap(dstbmp, 10, 10, null);
希望本文所述对大家的android程序设计有所帮助。