【问题标题】:How do i convert to Color to Bitmap?如何将颜色转换为位图?
【发布时间】:2015-09-22 19:47:24
【问题描述】:

我有一个整数形式的颜色,我希望该颜色是位图形式。
有什么办法吗?

我试过了

Drawable d = new ColorDrawable(Color.parseColor("#ffffff"));
Bitmap b = ((BitmapDrawable)d).getbitmap();

但是上面的代码给出了错误 Cannot cast ColorDrawable to BitmapDrawable

还有其他方法吗?

实际代码是

Palette.generateAsync(BitmapFactory.decodeFile(songArt),
            new Palette.PaletteAsyncListener() {
                @Override
                public void onGenerated(final Palette palette) {
                    if (Build.VERSION.SDK_INT >= 16) {
                        Drawable colorDrawable = new ColorDrawable(palette.getDarkVibrantColor(
                                getResources().getColor(R.color.noti_background)));
                        notificationCompat.bigContentView.setImageViewResource(R.id.noti_color_bg,
                                ((BitmapDrawable) colorDrawable).getBitmap());
                        notificationManager.notify(NOTIFICATION_ID, notificationCompat);
                    }
                }
            }
    );

【问题讨论】:

    标签: android bitmap notifications background-color


    【解决方案1】:

    是的,有。 你可以这样做:

    Bitmap bmp = Bitmap.createBitmap(width, height, Config.ARGB_8888);
    Canvas canvas = new Canvas(bmp);
    canvas.drawColor(colorInt)
    

    drawColor() 中,您还可以使用Color 类的方法设置颜色,例如Color.argb(...)Color.rgb(...)

    这样您将获得一个尺寸为width/height 并填充了指定颜色的位图。

    进一步说明:您创建一个具有指定尺寸的Bitmap 对象。然后创建一个Canvas 对象并将Bitmap 对象附加到它。这样,使用Canvas 对象方法绘制的所有内容都将绘制在Bitmap 对象上。

    最后你有一个Bitmap 对象,里面有你的图画。

    【讨论】:

    • 您应该只在draw(color) 命令中设置一种颜色...您的答案非常具有误导性
    • edited 只是想指出设置颜色的各种方法,因为他正在解析颜色,而我以某种方式这样做是一种奇怪的方式
    • 这是一个更好的方式来做他试图在问题中实现的目标。
    • 他说他已经有了颜色整数,那么为什么要从字符串中解析呢?
    • @IljaKO 它的工作,但问题是我如何获得高度和宽度?
    猜你喜欢
    • 2011-08-23
    • 2022-11-25
    • 2013-08-01
    • 1970-01-01
    • 2016-10-09
    • 2011-07-30
    • 2012-09-30
    • 1970-01-01
    • 2014-12-01
    相关资源
    最近更新 更多