我要做一个3D旋转桌面,现在已经绘制好立方体,往上面贴好纹理了,不过纹理是其他图片,现在我想要获取launcher的workspace中的每一个celllayout的位图,然后将其作为纹理贴到立方体上。
也就是说,我现在不知道如何将workspace中的每一个分屏view(celllayout)转换成位图。
我已经尝试过的方法有两个,都不行: 注:下面的cell1来自launcher.xml中的<include android:id="@+id/cell1" layout="@layout/workspace_screen" />这一句,具体见层级观察器的截图。
1. [code=Java]
View view = findViewById(R.id.cell1);
Bitmap bit = Bitmap.createBitmap(view.getWidth(), view.getHeight(), Bitmap.Config.ARGB_8888);//这一句话报错,说view的宽高是0.
Canvas c = new Canvas(bit);
view.draw(c);
if(bit==null)
Log.v(TAG,"mBitmap is null");
else
Log.v(TAG,"mBitmap is not null");
[/code]
2.[code=Java]
View tempView=(View)findViewById(R.id.cell1);
tempView.setDrawingCacheEnabled(true);
tempView.measure( MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED),
MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));//这一句话报错,说tempView大小不确定神马的。
tempView.layout(0, 0, tempView.getMeasuredWidth(),tempView.getMeasuredHeight());
tempView.buildDrawingCache();
mBitmap[0]= tempView.getDrawingCache();
if(mBitmap[0]==null)
Log.v(TAG,"mBitmap is null");
[/code]
[img=https://img-my.csdn.net/uploads/201205/24/13378284_7309.jpg][/img]
也就是说,我现在不知道如何将workspace中的每一个分屏view(celllayout)转换成位图。
我已经尝试过的方法有两个,都不行: 注:下面的cell1来自launcher.xml中的<include android:id="@+id/cell1" layout="@layout/workspace_screen" />这一句,具体见层级观察器的截图。
1. [code=Java]
View view = findViewById(R.id.cell1);
Bitmap bit = Bitmap.createBitmap(view.getWidth(), view.getHeight(), Bitmap.Config.ARGB_8888);//这一句话报错,说view的宽高是0.
Canvas c = new Canvas(bit);
view.draw(c);
if(bit==null)
Log.v(TAG,"mBitmap is null");
else
Log.v(TAG,"mBitmap is not null");
[/code]
2.[code=Java]
View tempView=(View)findViewById(R.id.cell1);
tempView.setDrawingCacheEnabled(true);
tempView.measure( MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED),
MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));//这一句话报错,说tempView大小不确定神马的。
tempView.layout(0, 0, tempView.getMeasuredWidth(),tempView.getMeasuredHeight());
tempView.buildDrawingCache();
mBitmap[0]= tempView.getDrawingCache();
if(mBitmap[0]==null)
Log.v(TAG,"mBitmap is null");
[/code]
[img=https://img-my.csdn.net/uploads/201205/24/13378284_7309.jpg][/img]
![](https://img-my.csdn.net/uploads/201205/24/1337846988_7301.jpg)