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);


更多相关文章

  1. android相机调试
  2. android中ColorStateList及StateListDrawable设置Selector
  3. Android(安卓)Sqlite Failed to open database(无法打开数据库文
  4. Android(安卓)主动获取电量的方法
  5. Android植物大战僵尸附源码
  6. 浅谈Java中Collections.sort对List排序的两种方法
  7. NPM 和webpack 的基础使用
  8. Python list sort方法的具体使用
  9. 【阿里云镜像】使用阿里巴巴DNS镜像源——DNS配置教程

随机推荐

  1. android在framework层增加自己的service
  2. 关于Android(安卓)Resource的点点滴滴
  3. 【移动开发】因项目需要,今天起学习移动开
  4. [来自iPc.me] 金山 WPS Office 手机移动
  5. 2015年 - 异乡
  6. Android(安卓)特色开发,使用传感器
  7. android animation——view进入退出动画
  8. Android(安卓)SDK上手指南 3:用户交互
  9. android小记之自定义ImageView
  10. Android应用程序签名过程分析