怎么复制drawable在android?

时间:2011-11-04 08:28:36

标签: java android

嗨我想在一个带有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();
        }

1 个答案:

答案 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