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

时间:2012-10-18 07:23:00

标签: android imageview drawable listadapter

我在数据库中有一个列,可以是字母RGBMCY(Red, Green, Blue, Magenta, Cyan, Yellow)的任意组合。它可以是1-6个字符长,任何顺序,只要每个字母最多出现1次。像720种可能的不同组合。创造每种可能性都会非常耗时,而且还会让APK更加膨胀。

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

1 个答案:

答案 0 :(得分:1)

尝试覆盖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;
        }

    };