TextView loadingText = (TextView)findViewById(R.id.loadingText);
    loadingText.setTextSize(36);
    loadingText.setText("Morphing...");
    Bitmap leftbm = ((BitmapDrawable)leftImage.getDrawable()).getBitmap();
    Bitmap rightbm = ((BitmapDrawable)rightImage.getDrawable()).getBitmap();


    Bitmap newbm = leftbm.copy(Bitmap.Config.ALPHA_8, true);
    int[] pixels = new int[newbm.getHeight() * newbm.getWidth()];
    newbm.getPixels(pixels, 0, newbm.getWidth(), 0, 0, newbm.getWidth(), newbm.getHeight());

    if (!newbm.isMutable()) {
        Log.d("mutable check", "" + newbm.isMutable());
        return;
    }

    for (int i = 0; i < newbm.getWidth(); i++) {
        for (int j = 0; j < newbm.getHeight(); j++) {
            newbm.setHasAlpha(false);
            newbm.setPixel(i, j, Color.rgb(0, 0, 255));
        }
    }

    loadingText.clearComposingText();
    ((ImageView)findViewById(R.id.morphView)).setImageBitmap(newbm);


这是我主要活动中按钮单击方法的代码。它只会输出黑色图像。我已经使用alpha和不使用,或者使用设置的像素或设置的像素来做到这一点。总是得到相同的结果。

编辑:我的问题是使用复制方法(我用来获取图像的可变位图)时使用了错误的配置。您需要ALPHA_8888而不是ALPHA_8。

最佳答案

它是你的格式。您将其设置为ALPHA_8。此格式仅存储alpha,不存储颜色数据。用户ARGB_8888而是每个颜色通道8位和8位alpha。

10-08 14:32