如何将一布局转换为Bitmap??
部分代码如下:
public class MainActivity extends Activity {
protected static Bitmap bmp = null;
private LinearLayout ll;
private Button bt;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Log.d("1***", MainActivity.bmp + "");
// 该线性布局中有两个ImageView、一个TextView
ll = (LinearLayout) findViewById(R.id.ll);
bt = (Button) findViewById(R.id.next);
bmp = ll.getDrawingCache();// 将线性布局中的整个内容转换为位图
Log.d("2***", MainActivity.bmp + "");
bt.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent it = new Intent(MainActivity.this, TwoActivity.class);
startActivity(it);
}
});
}
}
以下是Log日志
bmp = ll.getDrawingCache();// 将线性布局中的整个内容转换为位图看来这样不能将这个线性布局转换为Bitmap的对象,请问一下大家有什么别的方法啊??
------解决思路----------------------CACHE
是在显示之后才有,也就是说不能在onCreate里 用CACHE。
建议这么写:
mCenter.buildDrawingCache();
mCenter.setDrawingCacheEnabled(true);
Bitmap b1 = mCenter.getDrawingCache();
mCenter.setDrawingCacheEnabled(false);
mCenter.destroyDrawingCache();
------解决思路----------------------destroyDrawingCache 先去掉。我这么写是因为我取到之后就使用完了,中间使用bitmap的代码我去掉了。
要是下个界面的话,把bitmap 传递过去就好了,要是传递过去为null,就先copy到native 层的内存里。要用的时候再取就行了。