gpt4 book ai didi

Android Palette 为某些图像返回透明颜色

转载 作者:搜寻专家 更新时间:2023-11-01 09:32:30 25 4
gpt4 key购买 nike

我有一个 AsyncTask,它从 url 加载位图并使用调色板更改我的 float 操作按钮的背景。对于大多数图像,它工作正常,但在某些图像上它会使按钮透明。屏幕截图 1 显示按钮颜色使用图像中的蓝色,但在屏幕截图 2 中按钮的颜色是透明的(即使图像不包含任何透明像素,因为它是 jpeg)。

    public class ColoredFabTask extends AsyncTask<String , String , String> {
Context mContext;
View view;
private View rootView;
URL myFileUrl;
Bitmap imageBitmap = null;

public ColoredFabTask(Context context, View view) {
this.mContext = context;
this.view = view;
}

@Override
protected void onPreExecute() {
}

@Override
protected String doInBackground(String... args) {
try {
myFileUrl = new URL(args[0]);
HttpURLConnection conn = (HttpURLConnection)
myFileUrl.openConnection();
conn.setDoInput(true);
conn.connect();
InputStream is = conn.getInputStream();
imageBitmap = BitmapFactory.decodeStream(is);
} catch (IOException e) {
e.printStackTrace();
}
return null;
}

@Override
protected void onPostExecute(String args) {
Palette palette = Palette.from(imageBitmap).generate();
int vibrant = palette.getVibrantColor(0);
FloatingActionButton applyButton = (FloatingActionButton) view.findViewById(R.id.applyButton);
applyButton.setBackgroundTintList(ColorStateList.valueOf(vibrant));
applyButton.setVisibility(View.VISIBLE);
}
}

截图:

enter image description here

enter image description here

最佳答案

如果有人想知道如何解决,我自己解决了这个问题。只需检查样本是否为空。

        Palette palette = Palette.from(imageBitmap).generate();
int fallbackColor = palette.getDominantColor(0);
Palette.Swatch vibrantColorSwatch = palette.getVibrantSwatch();
if (vibrantColorSwatch != null) {
int vibrantColor = vibrantColorSwatch.getRgb();
FloatingActionButton applyButton = (FloatingActionButton) view.findViewById(R.id.applyButton);
applyButton.setBackgroundTintList(ColorStateList.valueOf(vibrantColor));

}
else {
FloatingActionButton applyButton = (FloatingActionButton) view.findViewById(R.id.applyButton);
applyButton.setBackgroundTintList(ColorStateList.valueOf(fallbackColor));
}

关于Android Palette 为某些图像返回透明颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45937809/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com