android在处理一写图片资源的时候,会进行一些类型的转换,现在有空整理一下:

1、Drawable → Bitmap

Java代码
  1. publicstaticBitmapdrawableToBitmap(Drawabledrawable){
  2. Bitmapbitmap=Bitmap
  3. .createBitmap(
  4. drawable.getIntrinsicWidth(),
  5. drawable.getIntrinsicHeight(),
  6. drawable.getOpacity()!=PixelFormat.OPAQUE?Bitmap.Config.ARGB_8888
  7. :Bitmap.Config.RGB_565);
  8. Canvascanvas=newCanvas(bitmap);
  9. //canvas.setBitmap(bitmap);
  10. drawable.setBounds(0,0,drawable.getIntrinsicWidth(),drawable.getIntrinsicHeight());
  11. drawable.draw(canvas);
  12. returnbitmap;
  13. }

2、从资源中获取Bitmap

Java代码
  1. Resourcesres=getResources();
  2. Bitmapbmp=BitmapFactory.decodeResource(res,R.drawable.pic);

3、Bitmap → byte[]

Java代码
  1. privatebyte[]Bitmap2Bytes(Bitmapbm){
  2. ByteArrayOutputStreambaos=newByteArrayOutputStream();
  3. bm.compress(Bitmap.CompressFormat.PNG,100,baos);
  4. returnbaos.toByteArray();
  5. }


4、 byte[] → Bitmap

Java代码
  1. privateBitmapBytes2Bimap(byte[]b){
  2. if(b.length!=0){
  3. returnBitmapFactory.decodeByteArray(b,0,b.length);
  4. }
  5. else{
  6. returnnull;
  7. }
  8. }


转换Bitmap to Drawable

Java代码
  1. BitmapDrawablebitmapDrawable=(BitmapDrawable)bitmap;
  2. Drawabledrawable=(Drawable)bitmapDrawable;
  3. Bitmapbitmap=newBitmap(...);
  4. Drawabledrawable=newBitmapDrawable(bitmap);

///////BitmapDrawable bitmapDrawable = (BitmapDrawable)bitmap;这一句应该改成BitmapDrawable bd = new BitmapDrawable(bitmap);////////

转换Drawable to Bitmap

Java代码
  1. Drawabled=ImagesList.get(0);
  2. Bitmapbitmap=((BitmapDrawable)d).getBitmap();

更多相关文章

  1. Android防止暴力(多次)点击 - 代码已封装可直接使用
  2. Android学习笔记(八)
  3. 常用代码合集一
  4. Android(安卓)实例及组件
  5. PopupWindow 动画显示与消失(逐惭缩放、逐惭透明)
  6. 圆形button
  7. Android(安卓)TextView跑马灯效果代码
  8. Android(安卓)3D与JNI结合的小例子
  9. android中的ListView与ScrollView冲突保留ScrollV

随机推荐

  1. Android 之 shape和selector用法介绍
  2. Android(安卓)Color值汇总
  3. Android studio中快捷键
  4. Android---进程间通机制的简单理解
  5. Android 更新UI的两种方法——handler和r
  6. Android下拉框控件Spinner的使用
  7. Android(安卓)Jetpack
  8. android-NotificationManager
  9. android播放视频(三)利用原生的MediaPlayer
  10. [译]依赖反转在Android中的实践