2015-01-06 195 views
1

我使用這個devadvance\circularSeekBar 創建了一個半圓形進度條,當我從調色板中選擇該自定義視圖時,它看起來像這樣。半圓形進度條Android - 繪製半圓

progress bar in palette

在這我有兩個相對佈局與權重。包含進度條的佈局的權重爲2,最下面的權重爲3.並且將進度條的佈局寬度和高度設置爲包裝內容。

所以我的問題是爲什麼進度條看起來像這樣從調色板中選擇時?畫布大小是否需要完美的正方形?我想要的是半圓形進度條被這樣的佈局完全包圍。

expected

在此任何光理解。

編輯 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>

+1

後ur xml代碼.. –

+0

它看起來像你交換的權重分配(頂部= 3,底部= 2)。也許你忘了分配'android:layout_height =「0dp」',這是權重的工作方式。還要確保根容器是一個LinearLayout(如果它是一個RelativeLayout,你可以忘記權重)。 –

+0

@DerGolem根容器是一個LinearLayout。我用'android:layout_height =「match_parent」' @MSGadag編輯。 – Sndn

回答

-1

問題是,你有帆布的高度。你有一個圓圈的高度,你可以畫出一半的圓圈。 試試這個:https://github.com/natasam/DemoProgressViewsLibApp 它正是你所需要的,你可以很容易地自定義ArcProgressBar滿足您的需求。高度是圓弧的高度,並不是像你的圓圈那樣。你也可以設置填充,邊距,寬度你想要的。

+1

比我使用的更好! – Sndn

0

添加此

android:layout_height="0dp" 

insted的這個

android:layout_height="match_parent" 

爲你的相對佈局,你增加了重量屬性。

android:id="@+id/exercise_frame" 
android:id ="@+id/calorie_frame" 

IDS改變高度= 「0dp」

希望工程......

+0

沒有。這沒有幫助。 – Sndn

0

我依然沒有找到的原因爲什麼會發生如圖所示,但我猜測是它應該像那樣工作。無論如何,我用這個 lzyzsd/CircleProgress取代它,它對我的​​用例足夠好用。

類似真棒的東西都可以在這裏找到android-arsenal