Android开发之Bitmap的获取

来源:互联网 发布:点对点网速测试软件 编辑:程序博客网 时间:2024/06/06 10:26

1.使用BitmapFactory解析图片

[java] view plain copy
  1. // --> 使用BitmapFactory解析图片  
  2.            public void myUseBitmapFactory(Canvas canvas){  
  3.            // 定义画笔  
  4.               Paint paint = new Paint();  
  5.            // 获取资源流  
  6.               Resources rec = getResources();  
  7.               InputStream in = rec.openRawResource(R.drawable.haha);  
  8.            // 设置图片  
  9.               Bitmap bitmap =BitmapFactory.decodeStream(in);  
  10.            // 绘制图片  
  11.               canvas.drawBitmap(bitmap, 0,20, paint);           
  12.            }  

2.用BitmapDrawable解析图片

[java] view plain copy
  1. // --> 使用BitmapDrawable解析图片  
  2.            public void myUseBitmapDrawable(Canvas canvas){  
  3.            // 定义画笔  
  4.               Paint paint = new Paint();  
  5.            // 获得资源  
  6.               Resources rec = getResources();  
  7.            // BitmapDrawable  
  8.               BitmapDrawable bitmapDrawable = (BitmapDrawable) rec.getDrawable(R.drawable.haha);  
  9.            // 得到Bitmap  
  10.               Bitmap bitmap = bitmapDrawable.getBitmap();  
  11.            // 在画板上绘制图片  
  12.               canvas.drawBitmap(bitmap, 20,120,paint);  
  13.            }  

3.InputStreamBitmapDrawable绘制

[java] view plain copy
  1. // --> 使用InputStream和BitmapDrawable解析图片  
  2.          public void myUseInputStreamandBitmapDrawable(Canvas canvas){  
  3.          // 定义画笔  
  4.             Paint paint = new Paint();  
  5.          // 获得资源  
  6.             Resources rec = getResources();  
  7.          // InputStream得到资源流  
  8.             InputStream in = rec.openRawResource(R.drawable.haha);  
  9.          // BitmapDrawable 解析数据流  
  10.             BitmapDrawable bitmapDrawable =  new BitmapDrawable(in);  
  11.          // 得到图片  
  12.             Bitmap bitmap = bitmapDrawable.getBitmap();  
  13.          // 绘制图片  
  14.             canvas.drawBitmap(bitmap, 100100,paint);  
  15.          }