2016-10-19 5 views
0

2つを作成しようとしています丸みのあるエッジビュー、AとBをAndroidに入れました。どちらのビューも同じコーナー半径を持ちますが、AまたはB内のBはA内のように見えます。Android:丸いエッジのビューが別の丸いエッジのビュー内で拡大する

Bの幅は、以下のパーセンテージに従って動的です。パーセンテージが5%を超えると、これは完璧に機能します。しかし、パーセンテージが5%未満であると、以下の失敗図のようになります。彼らは完全に独立した見方のように見えますが、実際にはそうです。私は灰色の領域内でのみ緑色の部分が成長する必要があります。これはどのように達成できますか?

理想的には、

のようになります。しかし、私はそれを作ることができませんでした。 :/私はここで A is the gray view and B is green

を得た図は、

<RelativeLayout 
    android:id="@+id/percentageBarViewGroup" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content"> 

    <View 
    android:id="@+id/a_Bar" 
    android:layout_width="match_parent" 
    android:layout_height="20dp" 
    android:background="@drawable/progress_bar_empty_background"/> 

    <View 
    android:id="@+id/b_Bar" 
    android:layout_width="0dp" 
    android:layout_height="20dp" 
    android:background="@drawable/progress_bar_progressing_background"/> 

</RelativeLayout> 
+0

はこれを試してみてください。http://stackoverflow.com/q/26074784/5241603 –

+0

[上記の質問の解決](http://stackoverflow.com/a/26201117/7035842) これは私のために最適です。ありがとうございました! @ K.Sopheak – shumin

+0

ようこそ。 –

答えて

0

の下に与えられたとして、私は、あなたがネストされたビューとパディングを使用する必要があります描画可能を定義なかったものです。終わり

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" android:layout_height="match_parent"> 

    <FrameLayout 
    android:id="@+id/a_Bar" 
    android:layout_width="match_parent" 
    android:layout_height="20dp" 
    android:background="@drawable/progress_bar_empty_background"> 
    <View 
     android:id="@+id/b_Bar" 
     android:layout_width="0dp" 
     android:layout_height="match_parent" 
     android:background="@drawable/progress_bar_progressing_background"/> 
    </FrameLayout> 
</RelativeLayout> 

progress_bar_empty_backgroundと同じ色で、あなたのprogress_bar_progressing_backgroundにストロークを追加します。

このような何か:

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android"> 
    <corners android:radius="3dp"/> 
    <stroke android:width="2dp" android:color="#222"/> 
    <solid android:color="#fff"/> 
</shape> 
+0

動作しません。 Bの一部は、パッディングによってサイズが縮小されるため、カットされます。 – shumin

+0

私は私の答えを編集し、パディングを削除しました。あなたは脳卒中であなたの目標に達するでしょう。 @shumin –

+0

ありがとう!私は後で試してみる。 :] – shumin

関連する問題