为什么图片背景是紫色的
Why is the image background purple
我正在尝试在 ImageView 中显示 this transparent image。
我用这个下载并设置图像 class:
public class DownloadImageTask extends AsyncTask<String, Void, Bitmap> {
private String TAG = "DownloadImageTask";
ImageView bmImage;
public DownloadImageTask(ImageView bmImage) {
this.bmImage = bmImage;
}
protected Bitmap doInBackground(String... urls) {
String urldisplay = urls[0];
Bitmap mIcon11 = null;
try {
InputStream in = new java.net.URL(urldisplay).openStream();
mIcon11 = BitmapFactory.decodeStream(in);
} catch (Exception e) {
Log.d(TAG, e.getMessage());
e.printStackTrace();
}
return mIcon11;
}
protected void onPostExecute(Bitmap result) {
bmImage.setImageBitmap(result);
}
}
不幸的是,背景变成了紫色。为什么它会变成紫色,我该如何解决?
不是解决方案,但更像是修复。
我创建了一个可变位图并更改了颜色。
Bitmap copy = result.copy(Bitmap.Config.ARGB_8888, true);
int [] allpixels = new int [ copy.getHeight()*copy.getWidth()];
copy.getPixels(allpixels, 0, copy.getWidth(), 0, 0, copy.getWidth(), copy.getHeight());
for(int i =0; i < copy.getHeight() * copy.getWidth(); i++)
{
if( allpixels[i] == Color.MAGENTA)
{
allpixels[i] = Color.TRANSPARENT;
}
}
copy.setPixels(allpixels, 0, copy.getWidth(), 0, 0, copy.getWidth(), copy.getHeight());
bmImage.setImageBitmap(copy);
我正在尝试在 ImageView 中显示 this transparent image。
我用这个下载并设置图像 class:
public class DownloadImageTask extends AsyncTask<String, Void, Bitmap> {
private String TAG = "DownloadImageTask";
ImageView bmImage;
public DownloadImageTask(ImageView bmImage) {
this.bmImage = bmImage;
}
protected Bitmap doInBackground(String... urls) {
String urldisplay = urls[0];
Bitmap mIcon11 = null;
try {
InputStream in = new java.net.URL(urldisplay).openStream();
mIcon11 = BitmapFactory.decodeStream(in);
} catch (Exception e) {
Log.d(TAG, e.getMessage());
e.printStackTrace();
}
return mIcon11;
}
protected void onPostExecute(Bitmap result) {
bmImage.setImageBitmap(result);
}
}
不幸的是,背景变成了紫色。为什么它会变成紫色,我该如何解决?
不是解决方案,但更像是修复。
我创建了一个可变位图并更改了颜色。
Bitmap copy = result.copy(Bitmap.Config.ARGB_8888, true);
int [] allpixels = new int [ copy.getHeight()*copy.getWidth()];
copy.getPixels(allpixels, 0, copy.getWidth(), 0, 0, copy.getWidth(), copy.getHeight());
for(int i =0; i < copy.getHeight() * copy.getWidth(); i++)
{
if( allpixels[i] == Color.MAGENTA)
{
allpixels[i] = Color.TRANSPARENT;
}
}
copy.setPixels(allpixels, 0, copy.getWidth(), 0, 0, copy.getWidth(), copy.getHeight());
bmImage.setImageBitmap(copy);