Activity之间传递图片(Drawable,Bitmap)
来源:互联网 发布:哪个淘宝客插件最牛 编辑:程序博客网 时间:2024/06/05 09:50
最近在做系统的Settings定制,其中Apps管理进入详情页面时,需要向详情界面传递两个参数,app包名和icon,这就遇到了一个问题,activity之间如何传递drawable?
第一种思路,将drawable图片转化成bitmap类型,使用bundle或Intent的extral域直接传递bitmap,这样做,在进入某些app的时候,程序居然直接崩了,网上百度过后,原来是因为不能直接传递大于40k的图片。
第二种思路,就是把drawable转化为bitmap,再将bitmap存储为byte数组,然后再通过Intent传递。下面是代码:
private Bitmap bitmap; //drawable转化成bitmap的方法 private void drawableToBitamp(Drawable drawable) { int w = drawable.getIntrinsicWidth(); int h = drawable.getIntrinsicHeight(); System.out.println("Drawable转Bitmap"); Bitmap.Config config = drawable.getOpacity() != PixelFormat.OPAQUE ? Bitmap.Config.ARGB_8888 : Bitmap.Config.RGB_565; bitmap = Bitmap.createBitmap(w,hconfig); //注意,下面三行代码要用到,否在在View或者surfaceview里的canvas.drawBitmap会看不到图 Canvas canvas = new Canvas(bitmap); drawable.setBounds(0, 0, w, h); drawable.draw(canvas); }
bitmap转化成byte数组:
private byte[] bitmap2Bytes(Bitmap bm){ ByteArrayOutputStream baos = new ByteArrayOutputStream(); bm.compress(Bitmap.CompressFormat.PNG, 100, baos); return baos.toByteArray(); }
使用Intent传递数据:
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { Intent intent=new Intent(AppsActivity.this,AppDetailActivity.class); String pkgName = mlistAppInfo.get(position).getAppLabel(); Drawable appIcon = mlistAppInfo.get(position).getAppIcon(); String pkgName1 = mlistAppInfo.get(position).getPkgName(); drawableToBitamp(appIcon); byte[] bytes = bitmap2Bytes(bitmap); intent.putExtra("appIcon", bytes); intent.putExtra("packageName",pkgName); intent.putExtra("packageName1",pkgName1); startActivity(intent); } });
另一个Activity接收图片:
byte[] appIcons = intent.getByteArrayExtra("appIcon"); Bitmap bitmap= BitmapFactory.decodeByteArray(appIcons,0,appIcons.length); appIcon.setImageBitmap(bitmap);
阅读全文
0 0
- Activity之间传递图片(Drawable,Bitmap)
- Activity之间传递Bitmap
- Activity之间传递bitmap
- Android Activity之间传递图片(Bitmap)的方法
- Android Activity之间传递图片(Bitmap)的方法
- Android Activity之间传递图片(Bitmap)的方法
- Android Activity之间传递图片(Bitmap)的方法
- android activity之间传递bitmap
- Activity之间传递Bitmap方式
- Android Drawable和Bitmap图片之间转换
- Activity之间传递数据之Bitmap
- android Activity之间数据传递 Bitmap
- Activity之间传递da图片
- Android图片二进制与Bitmap、Drawable之间的转换
- Android图片二进制与Bitmap、Drawable之间的转换
- Android图片二进制与Bitmap、Drawable之间的转换
- Android图片二进制与Bitmap、Drawable之间的转换
- 获取系统图片资源 drawable和bitmap之间的转换
- fatal: Unable to create '........./.git/index.lock': File exists.
- iOS调试——打全局断点后总是在断在App delegate里处理办法
- 【HDU-1232】 畅通工程
- iOS开发自定义简洁实用的高可扩展的Model基类
- ionic2+cordova 遇到的坑
- Activity之间传递图片(Drawable,Bitmap)
- ubuntu中CTS环境搭建
- 51Nod-1747-近似多项式
- poj2139(最短路)
- HDU6058 Kanade's sum
- IaaS、PaaS和SaaS
- TextView 判断自动换行
- Spring 中的注解
- (一)Android数据结构学习之链表