Android 批量获取颜色然后转换成json格式

Android 批量获取颜色然后转换成json格式

在需要获取大量color时。目前Android有的几种方法:

定义一个string-array 写入需要获取的color 的name。然后

int colorId = getResources().getIdentifier(name, "color", getContext().getPackageName()); 

(不靠谱)当需要获取的color在一个xml中时,在需要获取的color第一个前和最后一个后,定义一个专门用于获取id的color。然后循环获取R.color.start int值与结束int值之间的颜色。。不靠谱。但似乎没有问题。

我最终选择的方法:根据R.color.class.getDeclaredFields() 获取所有color的Field,然后转json

	Field[] fields = R.color.class.getDeclaredFields();
	for(int i = 0;i < fields.length; i++){
            fields[i].setAccessible(true);
            String name = fields[i].getName();

            int colorId = getResources().getIdentifier(name, "color", getContext().getPackageName());
            if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) {
                int intColor = getResources().getColor(colorId , theme);
                stringBuffer.append("\"");
                stringBuffer.append(name);

                float alpha = (intColor & 0xff000000) >>> 24;
                String red = Integer.toHexString((intColor & 0x00ff0000) >> 16);
                String green = Integer.toHexString((intColor & 0x0000ff00) >> 8);
                String blue = Integer.toHexString((intColor & 0x000000ff));

                stringBuffer.append("\":[{\"Alpha\":\"");
                stringBuffer.append(String.format("%.2f",alpha / 255.0));
                stringBuffer.append("\",\"Color\":\"#");
                stringBuffer.append(red.length() == 1?"0" + red : red);
                stringBuffer.append(green.length() == 1?"0" + green : green);
                stringBuffer.append(blue.length() == 1?"0" + blue : blue);
                stringBuffer.append("\"}],");
            }
        }
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要将数据转换为JSON格式,可以使用不同的编程语言和工具。在JavaScript中,可以使用JSON.stringify()方法将数据对象转换为JSON字符串。在PHP中,可以使用json_encode()函数将数据转换为JSON字符串。在jQuery中,可以使用$.ajax()方法设置dataType为"json",然后将数据作为参数传递给该方法,它将自动将数据转换为JSON格式。具体的转换方法如下: - 在JavaScript中,使用JSON.stringify()方法将数据对象转换为JSON字符串,例如: ``` var data = {name: "John", age: 30}; var json = JSON.stringify(data); ``` - 在PHP中,使用json_encode()函数将数据转换为JSON字符串,例如: ``` $data = array("name" => "John", "age" => 30); $json = json_encode($data); ``` - 在jQuery中,使用$.ajax()方法设置dataType为"json",然后将数据作为参数传递给该方法,它将自动将数据转换为JSON格式,例如: ``` var data = {name: "John", age: 30}; $.ajax({ url: "example.php", type: "POST", dataType: "json", data: data, success: function(response) { // 处理返回的JSON数据 } }); ``` 以上是一些常用的方法,具体的转换方式可能会根据不同的编程语言和工具而有所不同。 #### 引用[.reference_title] - *1* *2* *3* [php将从数据库中获得的数据转换成json格式并输出的方法](https://blog.csdn.net/weixin_42503069/article/details/115240083)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值