2016-04-27 16 views
9

Próbuję zrobić zwyczaj kształcie linearlayout jak poniżejNiestandardowy kształt Linearlayout z zakrzywionego boku w android

enter image description here

Próbuję zrobić tylko jedna strona zakrzywiona. Próbowałem z promieniem naroża, ale nie daje to takiego samego wyglądu jak powyżej.

już próbował ten kształt tła, jak poniżej: -

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="rectangle"> 
    <solid android:color="#3F51B5" /> 

    <padding 
     android:bottom="7dp" 
     android:left="7dp" 
     android:right="7dp" 
     android:top="7dp" /> 

    <corners 
     android:bottomLeftRadius="50dp" 
     android:bottomRightRadius="50dp" 
     android:topLeftRadius="0dp" 
     android:topRightRadius="0dp" /> 
</shape> 

to zaokrągla narożniki i tylko na zwiększenie kształt wartość nie jest zachowana jest zbyt okrągła. I WANT zakrzywionej linii, a nie zaokrąglone narożniki

+0

Można utworzyć obraz z tej zakrzywionej cieniu i można dodać jako tło 'Layout'. –

+0

Nie jestem pewien, czy będzie wyglądać tak samo we wszystkich rozdzielczościach, więc uniknąłem tego. czy to będzie? –

+0

Możesz użyć wymiaru dla wszystkich Rezolucji i sprawić, by działał łatwo. –

Odpowiedz

-1

można zastosować obraz w tle

+0

jakikolwiek link jak zrobić zdjęcie, aby działało na wszystkich rozdzielczościach? –

0

można ustawić wymiar w FIME wartość -dimension.xml a następnie ustawić go w xml swojej linearlayout to daje po tym jak

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
android:shape="rectangle"> 
<solid 
    android:color="#FFFF00" /> 
<padding android:left="7dp" 
    android:top="7dp" 
    android:right="7dp" 
    android:bottom="7dp" /> 

prostu zrobić plik xml w swojej rozciągliwej ustawić dimensio U Need a następnie wywołać go przez układ liniowy

+0

Przepraszam, że go nie dostałem, ale czy możesz podać przykład? nie jestem pewien, jakie wymiary mówisz o –

4

Utwórz plik kształtu w rozciągliwej folderu np my_shape.xml

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
android:shape="rectangle"> 
    <corners 
     android:bottomLeftRadius="100dp" 
     android:bottomRightRadius="100dp" 
     android:topLeftRadius="0dp" 
     android:topRightRadius="0dp" /> 
    <padding 
     android:bottom="0dp" 
     android:left="0dp" 
     android:right="0dp" 
     android:top="0dp" /> 
    <stroke 
     android:width="0.5dp" 
     android:color="@color/theme_red" /> 
    <solid android:color="@color/white" /> 
</shape> 

następnie dodaj ten kształt w układzie jako tło. np:

<LinearLayout 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:background="@drawable/my_shape" 
    android:orientation="horizontal">    
</LinearLayout> 
+0

jak już powiedziałem próbowałem dodać promień.it nie wygląda jak kształt na obrazie. Chcę, żeby linia była zakrzywiona –

+0

Myślę, że powinieneś iść z obrazem tła. Najpierw projektujesz obraz jako swoje wymaganie. następnie użyj go jako tła w swoim układzie. – Masum

+0

Tak, czy możesz zaproponować jakąkolwiek rozdzielczość, od której będzie wyglądać tak samo na wszystkich urządzeniach? –

3

co zrobiłem jest tworzyć rozciągliwej allowaccess_button_normal.xml

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

    <item> 
     <shape android:shape="oval"> 
      <solid android:color="@color/colorPrimary"/> 
     </shape> 
    </item> 

</selector> 

Try poniżej układ

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:background="#fefefe" 
    android:layout_height="match_parent"> 

    <RelativeLayout 
     android:layout_width="match_parent" 
     android:background="@color/colorPrimary" 
     android:layout_height="110dp"> 
    </RelativeLayout> 

    <ImageView 
     android:layout_marginTop="85dp" 
     android:src="@drawable/allowaccess_button_normal" 
     android:layout_width="match_parent" 
     android:layout_height="50dp" /> 


</RelativeLayout> 

enter image description here

1
<layer-lisxmlns:android="http://schemas.android.com/apk/res/android"> 

    <item android:top="175dp"> 

    <shape android:shape="oval"> 

    <gradient 
     android:angle="135" 
     android:startColor="#f56f2c" 
     android:endColor="#fa9f46"/> 

    </shape> 
    </item> 


    <item android:bottom="40dp"> 

    <shape android:shape="rectangle"> 

    <gradient 
     android:angle="135" 
     android:startColor="#f56f2c" 
     android:endColor="#fa9f46"/> 

    </shape> 
</item> 
</layer-list> 
0

Jest już bardzo późno, ale to jest dla przyszłych poszukiwaczy. Myślę, że najbardziej odpowiednie rozwiązanie to vector drawables. Użyj poniższego wektora: as background, aby uzyskać niestandardowy, zakrzywiony układ u dołu.

<vector xmlns:android="http://schemas.android.com/apk/res/android" 
android:width="24dp" 
android:height="24dp" 
android:viewportHeight="100.0" 
android:viewportWidth="200.0"> 
<path 
    android:fillColor="#YOUR_FAVORITE_COLOR" 
    android:pathData="M200,0H0v4.5h0v75.8h0c17.8,10.2 56,17.2 100.5,17.2c44.5,0 81.6,-7 99.5,-17.2h0V4.5h0V0z" /> 

Powiązane problemy