Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何为自定义列表适配器动态创建一个可绘制的以分配给imageview?_Android_Imageview_Drawable_Listadapter - Fatal编程技术网

Android 如何为自定义列表适配器动态创建一个可绘制的以分配给imageview?

Android 如何为自定义列表适配器动态创建一个可绘制的以分配给imageview?,android,imageview,drawable,listadapter,Android,Imageview,Drawable,Listadapter,我在数据库中有一列,可以是字母RGBMCY,(红色、绿色、蓝色、品红、青色、黄色)的任意组合。它可以是1-6个字符长,任何顺序,只要每个字母最多出现1次。大概有720种可能的不同组合。这将是非常耗时的创造每一种可能性,再加上膨胀的APK更多 我有一个自定义的ListAdapter,用于设置数据库信息中的ListView行。每个列表行都有一个ImageView。对于每种颜色,我在drawable文件夹中也有一个小的样式化点图像。我需要生成一个图像6子图像宽,画每个给定的点并排,在给定的顺序。如何动

我在数据库中有一列,可以是字母
RGBMCY
(红色、绿色、蓝色、品红、青色、黄色)的任意组合。它可以是1-6个字符长,任何顺序,只要每个字母最多出现1次。大概有720种可能的不同组合。这将是非常耗时的创造每一种可能性,再加上膨胀的APK更多


我有一个自定义的
ListAdapter
,用于设置数据库信息中的
ListView
行。每个列表行都有一个
ImageView
。对于每种颜色,我在
drawable
文件夹中也有一个小的样式化点图像。我需要生成一个图像6子图像宽,画每个给定的点并排,在给定的顺序。如何动态生成图像并分配给
ImageView
?是否可以检查缓存路径以查看其是否已生成并返回,或者生成图像,将其保存到缓存路径,然后返回?缓存会很好地工作,因为每个用户都倾向于某些组合。

尝试覆盖ListAdapter的getView方法

    listAdapter = new ArrayAdapter<String>(this, R.layout.list_item) {

        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            final TextView row = (TextView) super.getView(position,
                    convertView, parent);

            String[] values = row.getText().toString().split(" ");
            Integer rowColor = Color.rgb(Integer.parseInt(values[0]),
                    Integer.parseInt(values[1]),
                    Integer.parseInt(values[2]));

            row.setBackgroundColor(rowColor);

            return row;
        }

    };
listAdapter=newarrayadapter(此,R.layout.list_项){
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
最终文本视图行=(文本视图)super.getView(位置,
转换视图(父级);
String[]values=row.getText().toString().split(“”);
整数rowColor=Color.rgb(Integer.parseInt(值[0]),
整数.parseInt(值[1]),
整数.parseInt(值[2]);
row.setBackgroundColor(rowColor);
返回行;
}
};

然后您可以使用任何逻辑将6个布局视图的颜色并排设置,随机或随意设置它们的颜色。这只会更改行的背景颜色。我试图创建一个1-6个子图像的合成图像,并排绘制。每个子图像都是预先绘制的点图像。