1)从android的资源文件夹layout中加载xml布局文件,并把布局文件映射为Bitmap

main.xml文件如下:

view plain print ?
  1. <?xmlversion="1.0"encoding="utf-8"?>
  2. <LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
  3. android:orientation="vertical"android:layout_width="256px"
  4. android:layout_height="256px">
  5. <TextViewandroid:layout_width="wrap_content"android:id="@+id/city"
  6. android:layout_height="wrap_content"android:textSize="20px"
  7. android:textColor="#ffffff"android:shadowColor="#0000AA"
  8. android:shadowDx="0"android:shadowDy="-2"android:shadowRadius="0.1"
  9. android:layout_gravity="right"android:layout_marginRight="5px"/>
  10. </LinearLayout>

java代码中的处理,方法一:

view plain print ?
  1. //加载xml布局文件
  2. LayoutInflaterfactory=LayoutInflater.from(context);
  3. Viewview=factory.inflate(R.layout.main,null);
  4. //获得布局文件中的TextView
  5. TextViewcity=(TextView)view.findViewById(R.id.city);
  6. //设置city的文本信息
  7. city.setText("xml中的textview");
  8. //启用绘图缓存
  9. view.setDrawingCacheEnabled(true);
  10. //调用下面这个方法非常重要,如果没有调用这个方法,得到的bitmap为null
  11. view.measure(MeasureSpec.makeMeasureSpec(256,MeasureSpec.EXACTLY),
  12. MeasureSpec.makeMeasureSpec(256,MeasureSpec.EXACTLY));
  13. //这个方法也非常重要,设置布局的尺寸和位置
  14. view.layout(0,0,view.getMeasuredWidth(),view.getMeasuredHeight());
  15. //获得绘图缓存中的Bitmap
  16. view.buildDrawingCache();
  17. Bitmapbitmap=view.getDrawingCache();

java代码中的处理,方法二:

view plain print ?
  1. //加载xml布局文件
  2. LayoutInflaterfactory=LayoutInflater.from(context);
  3. Viewview=factory.inflate(R.layout.main,null);
  4. //获得布局文件中的TextView
  5. TextViewcity=(TextView)view.findViewById(R.id.city);
  6. //设置city的文本信息
  7. city.setText("xml中的textview");
  8. //调用下面这个方法非常重要,如果没有调用这个方法,得到的bitmap为null
  9. view.measure(MeasureSpec.makeMeasureSpec(256,MeasureSpec.EXACTLY),
  10. MeasureSpec.makeMeasureSpec(256,MeasureSpec.EXACTLY));
  11. //这个方法也非常重要,设置布局的尺寸和位置
  12. view.layout(0,0,view.getMeasuredWidth(),view.getMeasuredHeight());
  13. //生成bitmap
  14. Bitmapbitmap=Bitmap.createBitmap(view.getWidth(),view.getHeight(),
  15. Bitmap.Config.RGB_565);
  16. //利用bitmap生成画布
  17. Canvascanvas=newCanvas(bitmap);
  18. //把view中的内容绘制在画布上
  19. view.draw(canvas);



2)Bitmap转换为byte[]数组

方法一:

view plain print ?
  1. privatebyte[]Bitmap_To_Bytes(Bitmapbitmap){
  2. ByteArrayOutputStreambaos=newByteArrayOutputStream();
  3. bitmap.compress(Bitmap.CompressFormat.PNG,100,baos);
  4. returnbaos.toByteArray();
  5. }


方法二:

view plain print ?
  1. publicstaticbyte[]readStream(InputStreaminStream)throwsException{
  2. byte[]buffer=newbyte[1024];
  3. intlen=-1;
  4. ByteArrayOutputStreambaos=newByteArrayOutputStream();
  5. while((len=inStream.read(buffer))!=-1){
  6. baos.write(buffer,0,len);
  7. }
  8. byte[]data=baos.toByteArray();
  9. baos.close();
  10. inStream.close();
  11. returndata;
  12. }


3)设置在应用中支持32位的图像:

在onCreate()函数中加入以下两行:
getWindow().setFormat(PixelFormat.RGBX_8888);
BitmapFactory.setDefaultConfig(Bitmap.Config.ARGB_8888);
以使之 支持32bit的图像。

更多相关文章

  1. android注入代码之注入类方法
  2. Android(安卓)库文件的编译(静态和动态库 Android.mk)
  3. android使用activitygroup和Scrollview的方法
  4. Android递归拷贝assets资源到指定目录
  5. android studio中gradle更新办法
  6. Android中获取文件路径的方法总结及对照
  7. Android(安卓)命令行打包和签名
  8. Android(安卓)ScrollView的具体使用
  9. Android调试程序技巧

随机推荐

  1. mtopsdk(淘宝系android app使用的sdk)强
  2. javac错误:javac不是内部或外部命令 也不
  3. Android常用的组件间通信方式
  4. android 中的 window,view,activity具体
  5. Android(安卓)Handler的基本使用
  6. Android:如何给ScrollView添加滑块滚动条
  7. Android(安卓)Application 理解
  8. Android(安卓)studio常用设置详解
  9. android系统(9)---android工具网站
  10. React Native实战(二):Android的打包