android Bitmap
来源:互联网 发布:小苍外设淘宝店 编辑:程序博客网 时间:2024/05/16 01:27
1)从android的资源文件夹layout中加载xml布局文件,并把布局文件映射为Bitmap
main.xml文件如下:
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical" android:layout_width="256px"android:layout_height="256px"><TextView android:layout_width="wrap_content" android:id="@+id/city"android:layout_height="wrap_content" android:textSize="20px"android:textColor="#ffffff" android:shadowColor="#0000AA"android:shadowDx="0" android:shadowDy="-2" android:shadowRadius="0.1"android:layout_gravity="right" android:layout_marginRight="5px" /></LinearLayout>
java代码中的处理,方法一:
//加载xml布局文件LayoutInflater factory = LayoutInflater.from(context);View view = factory.inflate(R.layout.main, null);//获得布局文件中的TextViewTextView city = (TextView) view.findViewById(R.id.city);//设置city的文本信息city.setText("xml中的textview");//启用绘图缓存view.setDrawingCacheEnabled(true);//调用下面这个方法非常重要,如果没有调用这个方法,得到的bitmap为nullview.measure(MeasureSpec.makeMeasureSpec(256, MeasureSpec.EXACTLY),MeasureSpec.makeMeasureSpec(256, MeasureSpec.EXACTLY));//这个方法也非常重要,设置布局的尺寸和位置view.layout(0, 0, view.getMeasuredWidth(), view.getMeasuredHeight());//获得绘图缓存中的Bitmapview.buildDrawingCache();Bitmap bitmap = view.getDrawingCache();
java代码中的处理,方法二:
//加载xml布局文件LayoutInflater factory = LayoutInflater.from(context);View view = factory.inflate(R.layout.main, null);//获得布局文件中的TextViewTextView city = (TextView) view.findViewById(R.id.city);//设置city的文本信息city.setText("xml中的textview");//调用下面这个方法非常重要,如果没有调用这个方法,得到的bitmap为nullview.measure(MeasureSpec.makeMeasureSpec(256, MeasureSpec.EXACTLY),MeasureSpec.makeMeasureSpec(256, MeasureSpec.EXACTLY));//这个方法也非常重要,设置布局的尺寸和位置view.layout(0, 0, view.getMeasuredWidth(), view.getMeasuredHeight());//生成bitmapBitmap bitmap = Bitmap.createBitmap(view.getWidth(), view.getHeight(),Bitmap.Config.RGB_565);//利用bitmap生成画布Canvas canvas = new Canvas(bitmap);//把view中的内容绘制在画布上view.draw(canvas);
2)Bitmap转换为byte[]数组
方法一:
private byte[] Bitmap_To_Bytes(Bitmap bitmap){ ByteArrayOutputStream baos = new ByteArrayOutputStream(); bitmap.compress(Bitmap.CompressFormat.PNG, 100, baos); return baos.toByteArray(); }
方法二:
public static byte[] readStream(InputStream inStream) throws Exception { byte[] buffer = new byte[1024]; int len = -1; ByteArrayOutputStream baos = new ByteArrayOutputStream(); while ((len = inStream.read(buffer)) != -1) { baos .write(buffer, 0, len); } byte[] data = baos .toByteArray(); baos .close(); inStream.close(); return data; }
3)设置在应用中支持32位的图像:
在onCreate()函数中加入以下两行:
getWindow().setFormat(PixelFormat.RGBX_8888); BitmapFactory.setDefaultConfig(Bitmap.Config.ARGB_8888);
以使之 支持32bit的图像。
4)把drawable文件夹下的文件转成Bitmap
Bitmap bm = BitmapFactory.decodeResource(getApplicationContext().getResources(), R.drawable.down);
- android Bitmap
- android Bitmap
- android bitmap
- android Bitmap
- android bitmap
- android Bitmap
- Android Bitmap
- Android--Bitmap
- Android Bitmap
- Android.Bitmap
- Android Bitmap
- Android Bitmap
- Android Bitmap
- Android Bitmap
- Bitmap【Android】
- Android Bitmap
- Android Bitmap
- Android Bitmap
- PHP内核介绍及扩展开发指南
- StringBuffer中substring用法的问题
- 类型Universe 无法解析程序集 System.Design,Version=2.0.0.0
- 关于android创建快捷方式会启动两个应用的问题(二)
- 加班,谁之过?
- android Bitmap
- 几种流媒体方案
- 使用CVideoPlayerUtility播放视频,在某些型号的手机上只有声音没有图像的问题
- UISearchBar和UISearchDisplayController
- jQuery 判断文件上传类型
- Visual Studio 2008快捷键大全
- 【ffmpeg重温】
- Flash AIR文件操作:AIR文件基础
- oracle数据导出shell脚本