答案 0 :(得分:0)
首先,您必须获取当前壁纸并将其转换为位图,如
final WallpaperManager wallpaperManager = WallpaperManager.getInstance(this);
final Drawable wallpaperDrawable = wallpaperManager.getDrawable();
Bitmap bitmap = ((BitmapDrawable)wallpaperDrawable).getBitmap();
之后使用此link获取图像的主色。
答案 1 :(得分:0)
您可以使用API 27中添加的WallpaperManager.getWallpaperColors
答案 2 :(得分:-1)
您可以使用位图查找像素,您可以比较这些值以查找平均像素。
前 -
ImageView imageView = ((ImageView)v);
Bitmap bitmap = ((BitmapDrawable)imageView.getDrawable()).getBitmap();
int pixel = bitmap.getPixel(x,y);
int redValue = Color.red(pixel);
int blueValue = Color.blue(pixel);
int greenValue = Color.green(pixel);
有很多方法可以做到这一点..
请告诉您更多信息,您想做什么?
你能做的是 -
使用WallpaperMAnager.
将其转换为Bitmap.
获取所有像素以上技术可能会对您有所帮助。
使用pixel arrays.
使用平均值制作颜色并将壁纸设置为计算出的平均颜色。
答案 3 :(得分:-1)
我认为您可以使用它来获取壁纸并将其传输到位图:
WallpaperManager wallpaperManager = WallpaperManager.getInstance(mContext);
Drawable wallpaperDrawable = wallpaperManager.getDrawable();
Bitmap bm = ((BitmapDrawable) wallpaperDrawable).getBitmap();