我是Android Dev的新手,我真的很想弄清楚如何使库以我想要的方式运行。
我有一个回收站和卡片视图,如下面的屏幕快照所示,卡片视图内有com.github.mikephil.charting.charts.HorizontalBarChart。
i.stack.imgur.com/pIlfd.jpg(很抱歉,我没有发布截图的代表)。
灰色区域是我的HorizontalBarChart视图。
我想做的基本上是去除所有灰色,因此当我使用可包裹内容时,卡的长度不会超过左侧图像的大小。
我尝试将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中执行此操作。