2016-10-19 6 views
0

Ich versuche, zwei abgerundeten Kanten Ansichten, A und B, in Android zu machen. Beide Ansichten haben den gleichen Eckenradius, aber B ist innerhalb von A oder B sollte innerhalb von A aussehen.Android: Abgerundete Kanten wachsen innerhalb einer anderen abgerundeten Kanten

Die Breite von B ist dynamisch gemäß dem folgenden Prozentsatz. Wenn der Prozentsatz mehr als 5% beträgt, funktioniert das völlig einwandfrei. Da der Prozentsatz jedoch weniger als 5% beträgt, wird er wie die Fehlerzahl unten aussehen. Sie sehen wie völlig unabhängige Ansichten aus, obwohl sie tatsächlich sind. Ich brauche den grünen Teil wächst nur in der Grauzone. Wie kann dies erreicht werden?

Idealerweise sollte es aussehen

Aber ich nicht, es zu machen. :/Die Figur habe ich A is the gray view and B is green

Hier ist, was ich tat, definieren eine ziehbar wie unten

gegeben
<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

versuchen, diese: http://stackoverflow.com/q/26074784/5241603 –

+0

[Lösung der Frage oben] (http://stackoverflow.com/a/26201117/7035842) Das funktioniert das Beste für mich. Vielen Dank! @ K.Sopheak – shumin

+0

Gern geschehen. –

Antwort

0

Sie sollten verschachtelte Ansichten und padding verwenden.

<?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> 

Am Ende hinzufügen Schlaganfall zu Ihrem progress_bar_progressing_background mit der gleichen Farbe wie progress_bar_empty_background.

etwas wie folgt aus:

<?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

Es funktioniert nicht. Ein Teil von B wird aufgrund seiner Größe durch die Polsterung abgeschnitten. – shumin

+0

Ich habe meine Antwort bearbeitet und Padding entfernt. Sie werden Ihr Ziel mit einem Schlag erreichen. @shumin –

+0

Danke! Ich werde es später versuchen. :] – shumin

Verwandte Themen