android - 如何在android中将自定义颜色条显示到 ListView 适配器中

标签 android listview android-listview achartengine android-graphview

我想在我的 android 自定义 ListView 中显示自定义颜色条,如列(但不是图形)。 我试过 AchartEngine 但它给了我不必要的东西,比如图表名称 x 和 y 值加上列表适配器的 Getview 方法中的代码会消耗内存。

我正在寻找可以将简单的颜色条绘制到我的 ListView 项中而不会出现内存和性能问题的解决方案。 请找到我想要做的附件图片。

enter image description here 这是我的 AchartEngine 代码

public View getView(int position, View convertView, ViewGroup parent) {
    // TODO Auto-generated method stub
    ViewHolder viewHolder;
     if( convertView == null ){
         LayoutInflater inflater = ((Activity) context).getLayoutInflater();
            convertView = inflater.inflate(R.layout.lea_search_adaptor_item, parent, false);

    XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();

    int[] y = { 60, 50, 55, 80,60};
    CategorySeries series = new CategorySeries("");// i don't want title
    for (int i = 0; i < y.length; i++) {
        series.add("Bar " + (i+1), y[i]);
    }
    dataset.addSeries(series.toXYSeries());
    XYMultipleSeriesRenderer mRenderer = new XYMultipleSeriesRenderer();
    mRenderer.setChartTitle("");
    mRenderer.setXTitle(""); // i don't want title
    mRenderer.setYTitle("");// i don't want title
    mRenderer.setAxesColor(Color.GREEN);
    mRenderer.setLabelsColor(Color.RED);
    // Customize bar 1
    XYSeriesRenderer renderer = new XYSeriesRenderer();
    renderer.setDisplayChartValues(true);
    renderer.setChartValuesSpacing((float) 0.5);
    mRenderer.addSeriesRenderer(renderer);

    LinearLayout layout = (LinearLayout)convertView.findViewById(R.id.chart);
    GraphicalView graphicalView = ChartFactory.getBarChartView(context, dataset, mRenderer, null);
    layout.addView(graphicalView);
   else
     {
         viewHolder = (ViewHolder) convertView.getTag();
     }

        return convertView;
}

最佳答案

试试这个

 mRenderer.setShowLabels(false);
 mRenderer.setShowLegend(false);

对于颜色

public static int[] COLORS_I = new int[] {Color.argb(255, 142, 142,142),Color.argb(255, 229, 77, 67),Color.argb(255, 255, 149, 0),
    Color.argb(255, 59, 153, 216),Color.argb(255, 42, 187, 155),Color.argb(255, 240, 195, 48)}; 

SimpleSeriesRenderer renderer_I = new SimpleSeriesRenderer();  
renderer_I.setColor(COLORS_I[(arraylist.getItemCount() - 1) % COLORS_I.length]);  
mRenderer_I.addSeriesRenderer(renderer_I); 

希望对你有帮助..

关于android - 如何在android中将自定义颜色条显示到 ListView 适配器中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24994050/

相关文章:

android - 从 'com.android.tools.build:gradle:2.3.3'转换为3.0.1后,无法将索引1的值转换为维度:type = 0x1d

Android:限制用户选择自动完成建议以外的选择?

java - Android 相机,内部列表选项?

android - 将 Adapter 设置为 ExpendableListView 类型不匹配

java - 录制视频时显示类似 Whatsapp 的键盘

java - 我在 Android 中遇到了 null 异常,我找不到位置,最糟糕的是 - 为什么?

java - 每次应用程序运行时,listView 项目都会重复并变得越来越多

android - 从 fragment 中获取适配器中的 Activity 上下文

android - removeFooterView 没有删除页脚 View

android - 如何根据屏幕分辨率更改点的位置?