删除MPAndroidChart Horizo​​ntalBar Chart中的空白区域

时间:2019-02-08 22:07:35

标签: android mpandroidchart

我是Android Dev的新手,我真的很想弄清楚如何使库以我想要的方式运行。

我有一个回收站和卡片视图,如下面的屏幕快照所示,卡片视图内有com.github.mikephil.charting.charts.Horizo​​ntalBarChart。

i.stack.imgur.com/pIlfd.jpg(很抱歉,我没有发布截图的代表)。

灰色区域是我的Horizo​​ntalBarChart视图。

我想做的基本上是去除所有灰色,因此当我使用可包裹内容时,卡的长度不会超过左侧图像的大小。

我尝试将ExtraOffsets和ViewPortOffsets设置为0f,但这并没有给我我想要的结果。

这是我的Layout.xml:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:padding="0dp">

    <androidx.cardview.widget.CardView xmlns:card_view="http://schemas.android.com/apk/res-auto"
        android:id="@+id/gamelog_card_view"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="8dp"
        android:layout_marginTop="4dp"
        android:layout_marginBottom="4dp"
        android:layout_marginRight="8dp"
        card_view:cardBackgroundColor="@color/colorCardViewBackground"
        card_view:cardCornerRadius="0dp"
        card_view:contentPadding="0dp"
        card_view:elevation="0dp">

        <RelativeLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content">

            <ImageView
                android:id="@+id/gamelog_heroimg"
                android:layout_width="60dp"
                android:layout_height="60dp">
            </ImageView>

            <TextView
                android:id="@+id/gamelog_hero"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:paddingTop="4dp"
                android:paddingLeft="8dp"
                android:layout_toRightOf="@id/gamelog_heroimg"
                android:textColor="@color/colorCardViewText"
                android:textSize="14sp"
                android:textStyle="bold"></TextView>

            <TextView
                android:id="@+id/gamelog_games"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_toLeftOf="@id/gamelog_wins"
                android:paddingTop="7dp"
                android:paddingRight="8dp"
                android:textColor="@color/colorCardViewText"
                android:textSize="11sp">
            </TextView>

            <TextView
                android:id="@+id/gamelog_wins"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentRight="true"
                android:paddingRight="8dp"
                android:paddingTop="7dp"
                android:textColor="@color/colorCardViewText"
                android:textSize="11sp">
            </TextView>

            <com.github.mikephil.charting.charts.HorizontalBarChart
                android:id="@+id/gamelog_ratio_chart"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_below="@id/gamelog_hero"
                android:layout_toRightOf="@id/gamelog_heroimg"
                android:paddingLeft="0dp"
                android:paddingTop="0dp"
                android:paddingRight="0dp"
                android:background="#c1c1c1"
                android:paddingBottom="0dp" />

        </RelativeLayout>
    </androidx.cardview.widget.CardView>

</RelativeLayout>

与Java有关的MPAndroidChart:

@Override
public void onBindViewHolder(MyViewHolder holder, final int position) {

    holder.mIMGView.setBackgroundColor(Color.parseColor(mColors.get(position)));

    holder.mIMGView.setImageResource(getResId(mIMG.get(position), R.drawable.class));
    holder.mHeroView.setText(mHeroes.get(position));
    holder.mHeroView.setTextColor(Color.parseColor(mColors.get(position)));
    holder.mGamesView.setText("Played: " + mGames.get(position));
    holder.mGamesView.setTextColor(Color.parseColor(mColors.get(position)));
    holder.mWinsView.setText("Won: " + mWins.get(position));
    holder.mWinsView.setTextColor(Color.parseColor(mColors.get(position)));

    ArrayList<BarEntry> wRatio = new ArrayList();
    wRatio.add(new BarEntry(0,mRatio.get(position)));
    BarDataSet barDataSet = new BarDataSet(wRatio,"");
    barDataSet.setColors(ContextCompat.getColor(holder.mRatioView.getContext(),R.color.colorBarWin));
    barDataSet.setBarShadowColor(ContextCompat.getColor(holder.mRatioView.getContext(),R.color.colorBarLoss));
    barDataSet.setDrawValues(false);
    barDataSet.setHighlightEnabled(false);
    barDataSet.setBarBorderWidth(0f);
    BarData ratioData = new BarData(barDataSet);

    ratioData.setBarWidth(0.4f);

    holder.mRatioView.setData(ratioData);
    holder.mRatioView.setDrawBarShadow(true);
    holder.mRatioView.setDrawValueAboveBar(false);
    holder.mRatioView.setPinchZoom(false);
    holder.mRatioView.setClickable(false);
    holder.mRatioView.setTouchEnabled(false);
    holder.mRatioView.setScaleEnabled(false);
    holder.mRatioView.setDragEnabled(false);

    holder.mRatioView.getDescription().setEnabled(false);

    holder.mRatioView.getLegend().setEnabled(false);

    holder.mRatioView.getXAxis().setEnabled(false);

    holder.mRatioView.getAxisLeft().setAxisMaximum(100f);
    holder.mRatioView.getAxisLeft().setAxisMinimum(0f);
    holder.mRatioView.getAxisLeft().setEnabled(false);

    holder.mRatioView.getAxisRight().setEnabled(false);

    holder.mRatioView.invalidate();

}

任何帮助将不胜感激!

谢谢, 瑞安。

编辑:我应该提到我曾尝试将viewportoffsets和extraoffsets设置为0无效。

我知道我可以使用进度条,但是可以单击该卡并显示更详细的统计图,此时我需要弄清楚如何在MPAndroidChart中执行此操作。

0 个答案:

没有答案