首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > 移动开发 >

将View的内容投射成Bitmap转图片导出

2012-07-01 
将View的内容映射成Bitmap转图片导出将view映射到一个bitmap中,稍加改进可以用于一些截图工具或者截图软件

将View的内容映射成Bitmap转图片导出
将view映射到一个bitmap中,稍加改进可以用于一些截图工具或者截图软件(QQ截图之类),例子写的不够完善,不过很有些学习的意义内容大致如下:

在Android中自有获取view中的cache内容,然后将内容转换成bitmap,方法名是:getDrawingCache(),返回结果为Bitmap。
在使用的时候调用

Bitmap bitmap = view.getDrawingCache();

就可以得到图片的bitmap了。

为了测试这个功能,作者使用了两种方式来创建LinerLayout中的内容,一种是在xml文件中就将view的内容添加了,只需在代码中添加对应ImageView中的图片就行了;另一种是动态添加LinerLayout中的View。
工程结构图:
[img]

[/img]
布局文件:
main.xml



add_view.xml


set_view.xml


AddViewActivity
package com.zart;import android.app.Activity;import android.graphics.Bitmap;import android.os.Bundle;import android.util.Log;import android.view.View.MeasureSpec;import android.widget.ImageView;import android.widget.LinearLayout;public class SetViewActivity extends Activity {/** Called when the activity is first created. */private LinearLayout contentLayout;private ImageView imgSource1;private ImageView imgSource2;private ImageView imgCache;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.set_view);contentLayout = (LinearLayout) findViewById(R.id.content);imgSource1 = (ImageView) findViewById(R.id.imgSource1);imgSource2 = (ImageView) findViewById(R.id.imgSource2);imgCache = (ImageView) findViewById(R.id.imgCache);imgSource1.setImageResource(R.drawable.source1);imgSource2.setImageResource(R.drawable.source2);contentLayout.setDrawingCacheEnabled(true);contentLayout.measure(MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED),MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));contentLayout.layout(0, 0, contentLayout.getMeasuredWidth(),contentLayout.getMeasuredHeight());contentLayout.buildDrawingCache();Bitmap bitmap= contentLayout.getDrawingCache();if(bitmap!=null){imgCache.setImageBitmap(bitmap);}else{Log.i("CACHE_BITMAP", "DrawingCache=null");}}}


转自:http://hddev.blog.51cto.com/3365350/629808
只为学习。

热点排行