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。