嗨我想在一个带有android的文件中复制一个drawable。我的问题是我的图像文件是完全黑的。我不知道为什么。
try{
Drawable image = getResources().getDrawable(R.drawable.header);
Bitmap bitmap = Bitmap.createBitmap( image.getMinimumWidth(), image.getMinimumHeight(), Bitmap.Config.ARGB_8888);
File fs = new File(Environment.getExternalStorageDirectory()+"/file/header.png");
FileOutputStream fos;
fos = new FileOutputStream(fs);
Canvas canvas = new Canvas(bitmap);
image.draw(canvas);
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, fos);
//refermer
fos.flush();
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
答案 0 :(得分:2)
可能是因为在自定义画布上绘图时没有遵循measure-layout-draw例程。您的视图尚未测量,尚未布局,这就是您看到黑屏的原因。
换句话说,首先在图像上调用一个度量(或设置其所需的测量宽度和测量高度)。这可以通过在图像视图上调用measure(int,int)或调用image.setMeasuredWidth(int)和image.setMeasuredHeight(int)来实现。
之后,你必须布局你的视图 - 调用image.layout(int,int,int,int)。之后,当使用image.draw(canvas)时,您应该能够在位图上看到它。
进一步阅读: http://developer.android.com/guide/topics/ui/how-android-draws.html