首先你需要获取当前的壁纸,并将其转换为位图格式,例如:
final WallpaperManager wallpaperManager = WallpaperManager.getInstance(this);
final Drawable wallpaperDrawable = wallpaperManager.getDrawable();
Bitmap bitmap = ((BitmapDrawable)wallpaperDrawable).getBitmap();
然后使用此链接获取图像的主要颜色。
您可以使用位图来查找像素,并比较值以找到平均像素。
例如:
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
。
获取所有像素,上述技术可能会有所帮助。
使用像素数组
计算平均值。
使用平均值制作颜色,并将您的壁纸设置为计算出的平均颜色。
我认为你可以使用这个来获取壁纸并将其转换为位图:
WallpaperManager wallpaperManager = WallpaperManager.getInstance(mContext);
Drawable wallpaperDrawable = wallpaperManager.getDrawable();
Bitmap bm = ((BitmapDrawable) wallpaperDrawable).getBitmap();