【发布时间】:2018-06-06 17:02:54
【问题描述】:
我想以十六进制格式获取视图的背景颜色。
例如考虑int getViewBackgroundColor(View view)我的例外返回值是0Xff256e78。
我该怎么做?
谢谢。
【问题讨论】:
标签: android user-interface view colors background
我想以十六进制格式获取视图的背景颜色。
例如考虑int getViewBackgroundColor(View view)我的例外返回值是0Xff256e78。
我该怎么做?
谢谢。
【问题讨论】:
标签: android user-interface view colors background
以下代码将获取视图的背景颜色并将其转换为颜色的 int 表示形式。
ColorDrawable buttonColor = (ColorDrawable) myView.getBackground();
int colorId = buttonColor.getColor();
【讨论】:
LinearLayout layout = (LinearLayout) findViewById(R.id.lay1);
ColorDrawable viewColor = (ColorDrawable) layout.getBackground();
int colorId = viewColor.getColor();
得到整数类型的颜色后,现在必须转换为十六进制:
String hexColor = String.format("#%06X", (0xFFFFFF & colorId));
希望这会有所帮助..
【讨论】:
Long.parseLong(hexColorString, 16)
这是 Kotlin 语言的答案:
var view: View = findViewById(R.id.bg_view_id)
var draw: ColorDrawable = view.background as ColorDrawable
var color_id = draw.getColor()
Log.i("UYARI-INFO: ", Integer.toHexString(color_id))
Logcat 中的输出将是:
I/UYARI-INFO:: ffffd8af
【讨论】: