创建屏幕外布局的位图
我必须获取布局的位图(例如第二个屏幕)之前(可以说没有)将其带到前台屏幕。我引用了这篇文章。我在夸大视图的某个地方犯了错误。 注意:
1. Must not show the inflated screen (second screen)
2. Must not attach it to the parent view
我的代码片段在这里:
private Bitmap renderNextScreen() {
// Getting width, height device
Display display = ((WindowManager)getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay();
int width = display.getWidth();
int height = display.getHeight();
Log.i(TAG, "Width- " + width+" Height - "+height);
// Create a mutable bitmap
Bitmap secondScreen = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
// Created a canvas using the bitmap
Canvas c = new Canvas(secondScreen);
// Inflated the second screen
LayoutInflater inflater = LayoutInflater.from(this);
View secondView = inflater.inflate(R.layout.secondscreen, null);
Log.i(TAG, "secondView.Height- "+secondView.getHeight()+" , secondView.Width " + secondView.getWidth());
// Drawn the inflated view to canvas
secondView.draw(c);
preview.setImageBitmap(secondPage); // preview is the Imageview inside first screen
return secondScreen;
}
我的高度、宽度日志:
01-28 02:12:35.926: I/FirstActivity(21831): Width- 480 Height - 800
01-28 02:30:08.287: I/FirstActivity(22207): secondView.Height- 0 , secondView.Width 0
我的预览始终为空白。谢谢。
I have to get a bitmap of a layout(say second screen) Before (can say without) bring it to the foreground screen. I referred this post. I am doing mistake somewhere in inflating the view.
Note:
1. Must not show the inflated screen (second screen)
2. Must not attach it to the parent view
My code snippet is here:
private Bitmap renderNextScreen() {
// Getting width, height device
Display display = ((WindowManager)getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay();
int width = display.getWidth();
int height = display.getHeight();
Log.i(TAG, "Width- " + width+" Height - "+height);
// Create a mutable bitmap
Bitmap secondScreen = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
// Created a canvas using the bitmap
Canvas c = new Canvas(secondScreen);
// Inflated the second screen
LayoutInflater inflater = LayoutInflater.from(this);
View secondView = inflater.inflate(R.layout.secondscreen, null);
Log.i(TAG, "secondView.Height- "+secondView.getHeight()+" , secondView.Width " + secondView.getWidth());
// Drawn the inflated view to canvas
secondView.draw(c);
preview.setImageBitmap(secondPage); // preview is the Imageview inside first screen
return secondScreen;
}
My Log for height, width:
01-28 02:12:35.926: I/FirstActivity(21831): Width- 480 Height - 800
01-28 02:30:08.287: I/FirstActivity(22207): secondView.Height- 0 , secondView.Width 0
My preview was always blank. Thank you.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我认为将:更改
为:
然后您将需要为膨胀视图声明布局参数,例如:
Displaymetrics 是一个保存手机屏幕尺寸的变量。
然后你应该能够将该视图转换为 bmp。
I think that changing:
to:
you will then need to declare layout params for the inflated view, somthing like:
Displaymetrics was a variable that held the dimension of the phones screen.
Then you should be able to turn that view into a bmp.