在 android 中制作百分比条形图
make percentage bar chart in android
我正在寻找制作如下所示的百分比图表:
click here
有什么想法可以在 android 中解决这个问题吗?
那里一定有一个库,但您也可以使用线性布局并在 运行 时间更改其权重,例如:
<LinearLayout
android:id="@+id/attendance_layout"
android:layout_width="match_parent"
android:layout_height="60dp"
android:layout_margin="10dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/button_second"
android:orientation="horizontal"
android:weightSum="100">
<LinearLayout
android:id="@+id/absent_layout"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="50"
android:background="@color/purple_200"
android:gravity="center"
android:orientation="horizontal" >
<TextView
android:id="@+id/text_absent"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/white"
android:text="50%"
/>
</LinearLayout>
<LinearLayout
android:id="@+id/present_layout"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="30"
android:gravity="center"
android:background="@color/teal_200"
android:orientation="horizontal">
<TextView
android:id="@+id/text_present"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/white"
android:text="30%"
/>
</LinearLayout>
<LinearLayout
android:id="@+id/late_layout"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="20"
android:gravity="center"
android:background="@color/teal_700"
android:orientation="horizontal">
<TextView
android:id="@+id/text_late"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/white"
android:text="20%"
/>
</LinearLayout>
</LinearLayout>
这很容易在你的 xml 你需要这个:
<LinearLayout
android:id="@+id/attendance_layout"
android:layout_width="match_parent"
android:layout_height="60dp"
android:orientation="horizontal"
android:weightSum="100">
<LinearLayout
android:id="@+id/absent_layout"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="50"
android:background="@color/purple_200"
android:gravity="center"
android:orientation="horizontal" >
<TextView
android:id="@+id/text_absent"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/white"
android:text="50%"
/>
</LinearLayout>
<LinearLayout
android:id="@+id/present_layout"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="30"
android:gravity="center"
android:background="@color/teal_200"
android:orientation="horizontal">
<TextView
android:id="@+id/text_present"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/white"
android:text="30%"
/>
</LinearLayout>
<LinearLayout
android:id="@+id/late_layout"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="20"
android:gravity="center"
android:background="@color/teal_700"
android:orientation="horizontal">
<TextView
android:id="@+id/text_late"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/white"
android:text="20%"
/>
</LinearLayout>
</LinearLayout>
这取自 的回答,但有更多修改。
您可能想动态设置数据对吗?你可以这样做:
LinearLayout.LayoutParams param = new LinearLayout.LayoutParams(
LayoutParams.MATCH_PARENT,
LayoutParams.MATCH_PARENT,
100f /* This is the value of the width. You change it by getting value fro database or so. */
);
late_layout.setLayoutParams(param);
您可以将此代码用于所有部分
我正在寻找制作如下所示的百分比图表: click here
有什么想法可以在 android 中解决这个问题吗?
那里一定有一个库,但您也可以使用线性布局并在 运行 时间更改其权重,例如:
<LinearLayout
android:id="@+id/attendance_layout"
android:layout_width="match_parent"
android:layout_height="60dp"
android:layout_margin="10dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/button_second"
android:orientation="horizontal"
android:weightSum="100">
<LinearLayout
android:id="@+id/absent_layout"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="50"
android:background="@color/purple_200"
android:gravity="center"
android:orientation="horizontal" >
<TextView
android:id="@+id/text_absent"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/white"
android:text="50%"
/>
</LinearLayout>
<LinearLayout
android:id="@+id/present_layout"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="30"
android:gravity="center"
android:background="@color/teal_200"
android:orientation="horizontal">
<TextView
android:id="@+id/text_present"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/white"
android:text="30%"
/>
</LinearLayout>
<LinearLayout
android:id="@+id/late_layout"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="20"
android:gravity="center"
android:background="@color/teal_700"
android:orientation="horizontal">
<TextView
android:id="@+id/text_late"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/white"
android:text="20%"
/>
</LinearLayout>
</LinearLayout>
这很容易在你的 xml 你需要这个:
<LinearLayout
android:id="@+id/attendance_layout"
android:layout_width="match_parent"
android:layout_height="60dp"
android:orientation="horizontal"
android:weightSum="100">
<LinearLayout
android:id="@+id/absent_layout"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="50"
android:background="@color/purple_200"
android:gravity="center"
android:orientation="horizontal" >
<TextView
android:id="@+id/text_absent"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/white"
android:text="50%"
/>
</LinearLayout>
<LinearLayout
android:id="@+id/present_layout"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="30"
android:gravity="center"
android:background="@color/teal_200"
android:orientation="horizontal">
<TextView
android:id="@+id/text_present"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/white"
android:text="30%"
/>
</LinearLayout>
<LinearLayout
android:id="@+id/late_layout"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="20"
android:gravity="center"
android:background="@color/teal_700"
android:orientation="horizontal">
<TextView
android:id="@+id/text_late"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/white"
android:text="20%"
/>
</LinearLayout>
</LinearLayout>
这取自
您可能想动态设置数据对吗?你可以这样做:
LinearLayout.LayoutParams param = new LinearLayout.LayoutParams(
LayoutParams.MATCH_PARENT,
LayoutParams.MATCH_PARENT,
100f /* This is the value of the width. You change it by getting value fro database or so. */
);
late_layout.setLayoutParams(param);
您可以将此代码用于所有部分