gpt4 book ai didi

android - 随机获取 Android Material Design 颜色

转载 作者:行者123 更新时间:2023-12-02 08:24:56 24 4
gpt4 key购买 nike

我找到了 this Material 设计颜色列表,我想从中获取随机颜色。我是 android 开发的新手,并不完全了解 android 资源的工作原理。

我知道我可以通过 R.color.my_colorres/values/colors.xml 获取自定义颜色,但我想将我的应用自定义颜色与 Material 设计颜色。

我正在尝试做的事情:

  1. res 文件夹下的项目链接导入 xml 文件(例如 res/values/android_material_design_colours.xml)
  2. 从文件中获取所有颜色

    int[] allColors =(缺失部分)

  3. 使用Random类获取随机颜色

    int randomColor = allColors[new Random().nextInt(allColors.length)];

这是可能的还是有更好的方法?请帮忙。

最佳答案

因为我避免更改文件,所以我通过读取 xml 来完成。幸好 Android 有类 android.content.res.XmlResourceParser 可以简化 xml 解析。我最终得到了这个解决方案:

导入了 xml file到我在 res/xml 文件夹下的项目(例如 res/xml/android_material_design_colours.xml)

List<Integer> allColors = getAllMaterialColors();
int randomIndex = new Random().nextInt(allColors.size());
int randomColor = allColors.get(randomIndex);

private List<Integer> getAllMaterialColors() throws IOException, XmlPullParserException {
XmlResourceParser xrp = getContext().getResources().getXml(R.xml.materialcolor);
List<Integer> allColors = new ArrayList<>();
int nextEvent;
while ((nextEvent = xrp.next()) != XmlResourceParser.END_DOCUMENT) {
String s = xrp.getName();
if ("color".equals(s)) {
String color = xrp.nextText();
allColors.add(Color.parseColor(color));
}
}
return allColors;
}

关于android - 随机获取 Android Material Design 颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33101202/

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