Semi Circular Progress bar Android - 绘制半圆
Semi Circular Progress bar Android - drawing semi circle
我用这个devadvance\circularSeekBar创建了一个半圆形进度条
当我 select 调色板中的自定义视图时,它看起来像这样。
.
在此我有两个带有权重的相对布局。包含进度条的布局权重为2,最下面的权重为3。进度条的布局宽度和高度设置为包裹内容。
所以我的问题是,为什么从调色板 select 编辑时进度条看起来像这样?是canvas尺寸取正方形吗?我想要的是半圆形进度条被这样的布局完全包围。
感谢任何有关此的信息。
编辑xml代码
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/main_parent_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:fitsSystemWindows="true">
<include layout="@layout/toolbar"/>
<android.support.v4.widget.DrawerLayout
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="3">
<LinearLayout
android:id="@+id/content_frame"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<RelativeLayout xmlns:app = "http://schemas.android.com/apk/res-auto"
android:id ="@+id/calorie_frame"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="2"
android:clickable="true">
<com.devadvance.circularseekbar.CircularSeekBar
android:id="@+id/calorie_progressbar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:start_angle = "180"
app:end_angle = "0"
app:progress = "25"
app:circle_x_radius="200"
app:circle_y_radius="200"
app:circle_stroke_width = "30"
app:use_custom_radii="true"
app:circle_color ="#FFFACD"
android:layout_alignParentEnd="false"
android:layout_alignParentStart="false"
android:layout_centerInParent="true" />
</RelativeLayout>
<RelativeLayout
android:id="@+id/exercise_frame"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="3"
android:clickable="true">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="@string/calorie_label"
android:id="@+id/textView"
android:layout_marginBottom="40dp"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
android:layout_marginRight="20dp" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/imageView"
android:layout_alignBottom="@+id/textView"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_marginLeft="50dp"
android:layout_marginStart="50dp"
android:contentDescription="@string/exercise_image" />
</RelativeLayout>
</LinearLayout>
<ListView
android:id="@+id/left_drawer"
android:layout_width="240dp"
android:layout_height="match_parent"
android:layout_gravity="start"
android:choiceMode="singleChoice"
android:divider="@android:color/transparent"
android:dividerHeight="0dp"
android:background="#999"/>
</android.support.v4.widget.DrawerLayout>
</LinearLayout>
添加这个
android:layout_height="0dp"
代替这个
android:layout_height="match_parent"
对于你添加权重的相对布局 属性。
对于
android:id="@+id/exercise_frame"
android:id ="@+id/calorie_frame"
ids 变化 height="0dp"
希望它有用...
我仍然没有找到如图所示发生这种情况的原因,但我猜它应该是这样工作的。不管怎样,我用这个代替了它
lzyzsd/CircleProgress 它对我的用例来说已经足够好了。
可以在这里找到类似的很棒的东西android-arsenal
问题是您的 canvas 身高。你有一个圆的高度,你在上面画了一半的圆。
试试这个:https://github.com/natasam/DemoProgressViewsLibApp
它正是您所需要的,您可以根据需要轻松自定义 ArcProgressBar。而height是圆弧的高度,不是像你这样的全圆。您还可以根据需要设置填充、边距、宽度。
我用这个devadvance\circularSeekBar创建了一个半圆形进度条 当我 select 调色板中的自定义视图时,它看起来像这样。
在此我有两个带有权重的相对布局。包含进度条的布局权重为2,最下面的权重为3。进度条的布局宽度和高度设置为包裹内容。
所以我的问题是,为什么从调色板 select 编辑时进度条看起来像这样?是canvas尺寸取正方形吗?我想要的是半圆形进度条被这样的布局完全包围。
感谢任何有关此的信息。
编辑xml代码
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/main_parent_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:fitsSystemWindows="true">
<include layout="@layout/toolbar"/>
<android.support.v4.widget.DrawerLayout
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="3">
<LinearLayout
android:id="@+id/content_frame"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<RelativeLayout xmlns:app = "http://schemas.android.com/apk/res-auto"
android:id ="@+id/calorie_frame"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="2"
android:clickable="true">
<com.devadvance.circularseekbar.CircularSeekBar
android:id="@+id/calorie_progressbar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:start_angle = "180"
app:end_angle = "0"
app:progress = "25"
app:circle_x_radius="200"
app:circle_y_radius="200"
app:circle_stroke_width = "30"
app:use_custom_radii="true"
app:circle_color ="#FFFACD"
android:layout_alignParentEnd="false"
android:layout_alignParentStart="false"
android:layout_centerInParent="true" />
</RelativeLayout>
<RelativeLayout
android:id="@+id/exercise_frame"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="3"
android:clickable="true">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="@string/calorie_label"
android:id="@+id/textView"
android:layout_marginBottom="40dp"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
android:layout_marginRight="20dp" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/imageView"
android:layout_alignBottom="@+id/textView"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_marginLeft="50dp"
android:layout_marginStart="50dp"
android:contentDescription="@string/exercise_image" />
</RelativeLayout>
</LinearLayout>
<ListView
android:id="@+id/left_drawer"
android:layout_width="240dp"
android:layout_height="match_parent"
android:layout_gravity="start"
android:choiceMode="singleChoice"
android:divider="@android:color/transparent"
android:dividerHeight="0dp"
android:background="#999"/>
</android.support.v4.widget.DrawerLayout>
</LinearLayout>
添加这个
android:layout_height="0dp"
代替这个
android:layout_height="match_parent"
对于你添加权重的相对布局 属性。
对于
android:id="@+id/exercise_frame"
android:id ="@+id/calorie_frame"
ids 变化 height="0dp"
希望它有用...
我仍然没有找到如图所示发生这种情况的原因,但我猜它应该是这样工作的。不管怎样,我用这个代替了它 lzyzsd/CircleProgress 它对我的用例来说已经足够好了。
可以在这里找到类似的很棒的东西android-arsenal
问题是您的 canvas 身高。你有一个圆的高度,你在上面画了一半的圆。 试试这个:https://github.com/natasam/DemoProgressViewsLibApp 它正是您所需要的,您可以根据需要轻松自定义 ArcProgressBar。而height是圆弧的高度,不是像你这样的全圆。您还可以根据需要设置填充、边距、宽度。