我在RelativeLayout中有一个ImageView,第一个与RelativeLayout大小一样大(如bg),第二个ImageView有一个小图像,现在我想通过截图将这些与ImageView的图像合并为一个(不是直接组合两个位图。
在下面的代码片段中,我获取了RelativeLayout的截图,它成功了, 但是我发现图像质量不如第一个ImageView的位图 ,任何人都可以请帮帮我?
view.setDrawingCacheEnabled(true);
view.setDrawingCacheBackgroundColor(Color.TRANSPARENT);
view.setDrawingCacheQuality(View.DRAWING_CACHE_QUALITY_HIGH);
Bitmap drawCache = view.getDrawingCache(true);
答案 0 :(得分:1)
**public static Bitmap loadBitmapFromView(View v, int width, int height) {
Bitmap b = Bitmap.createBitmap(width , height, Bitmap.Config.ARGB_8888);
Canvas c = new Canvas(b);
v.layout(0, 0, v.getLayoutParams().width, v.getLayoutParams().height);
v.draw(c);
return b;
}
Bitmap bitmap;
View v1 = mCurrentUrlMask.getRootView();
View v1 = getWindow().getDecorView().getRootView();//this line for get better result
v1.setDrawingCacheEnabled(true);
bitmap = Bitmap.createBitmap(v1.getDrawingCache());
v1.setDrawingCacheEnabled(false);**
这对我有用
答案 1 :(得分:0)
尝试使用DecorView窗口获取位图:
View window = activity.getWindow().getDecorView()
Canvas bitmapCanvas = new Canvas();
Bitmap bitmap = Bitmap.createBitmap(window.getWidth()*2, window.getHeight()*2, Bitmap.Config.ARGB_8888);
bitmapCanvas.setBitmap(bitmap);
bitmapCanvas.scale(2.0f, 2.0f);
window.draw(bitmapCanvas);
bitmap.compress(Bitmap.CompressFormat.PNG, 0, myOutputStream);