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个子图像的合成图像,并排绘制。每个子图像都是预先绘制的点图像。