2012-09-13 36 views
2

我有一个观点是从布局膨胀:如何将充气的视图转换为位图?

LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
View tagView = inflater.inflate(R.layout.activity_main, null); 
TextView name = (TextView) tagView.findViewById(R.id.textView1); 
name.setText("hello"); 

现在我想隐蔽充气视图为位图

我应该怎么办?

回答

6

你可以把它按以下步骤进行:

//first, View preparation 
LayoutInflater inflater = 
    (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
View tagView = inflater.inflate(R.layout.activity_main, null); 
TextView name = (TextView) tagView.findViewById(R.id.textView1); 
name.setText("hello"); 


//second, set the width and height of inflated view 
tagView.measure(MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED), 
    MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED)); 
tagView.layout(0, 0, tagView.getMeasuredWidth(), tagView.getMeasuredHeight()); 


//third, finally conversion 
final Bitmap bitmap = Bitmap.createBitmap(tagView.getMeasuredWidth(), 
tagView.getMeasuredHeight(), Bitmap.Config.ARGB_8888); 
Canvas canvas = new Canvas(bitmap); 
tagView.draw(canvas); 

最后,你有你的充气tagViewbitmap

+0

崩溃的原因tagView.getLayoutParams()。width和tagView.getLayoutParams()。高度返回NullPointerException异常 – user1531240

+1

看到我的更新答案...它工作正常:) – waqaslam

+0

tagView.measure(MeasureSpec.makeMeasureSpec(0,MeasureSpec.UNSPECIFIED ), MeasureSpec.makeMeasureSpec(0,MeasureSpec.UNSPECIFIED)); 将抛出NullPointExcetion – user1531240