在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);



更多相关文章

  1. android 中dip sp的使用
  2. Android(安卓)把图片进行压缩
  3. Android处理图片透明度并绘画图片
  4. android沉浸式全屏显示
  5. android 样式选择器
  6. SmartImageView初接触
  7. Android——网络编程(网络图片查看器)
  8. android用户界面之Gallery教程实例汇总
  9. android对界面某一部分进行截图的方法

随机推荐

  1. Android的UI结构研究
  2. Android编程调试Log类使用详解
  3. android2.2 2.3状态栏区别
  4. Android的Menu键监听
  5. phonegap2.5在android开发平台的环境搭建
  6. Android(安卓)查看及设置 SELinux 状态
  7. Android简单登陆页面
  8. Android开发常用功能整理
  9. Android第三方文件选择器aFileChooser使
  10. 解决android:layout_marginBottom在Relat