2014-07-17 6 views
2

투명 배경을 가진 LinearLayout에 위쪽 테두리를 추가하려고합니다.투명 배경이있는 LinearLayout의 위쪽 테두리

결과는 다음 그림과 같아야합니다. 테두리는 "Jp Project"LinearLayout의 위쪽 테두리입니다. 배경색은 컨테이너로 사용되는 FrameLayout에서 가져옵니다.

enter image description here

이 선형 레이아웃 XML입니다 :

<shape xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="line"> 
    <stroke 
     android:width="2dp" 
     android:color="@color/base_app_color" /> 
    <solid android:color="@android:color/transparent"/> 
</shape> 

립니다 : enter image description here

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/menuItem" 
    android:layout_width="match_parent" 
    android:layout_height="50dp" 
    android:orientation="horizontal"> 

    <ImageView 
     android:id="@+id/icon" 
     android:layout_width="45dp" 
     android:layout_height="45dp" 
     android:src="@drawable/notification_action" 
     android:padding="10dp"/> 

    <TextView 
     android:id="@+id/menuItemName" 
     android:layout_width="0dp" 
     android:layout_height="match_parent" 
     android:layout_weight="1" 
     android:gravity="center_vertical" 
     android:textSize="19sp" 
     android:textColor="@color/white"/> 

    <TextView android:id="@+id/counter" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:gravity="center_vertical" 
     android:textAppearance="@android:style/TextAppearance.Medium" 
     android:textColor="@color/counter_text_color" 
     android:background="@drawable/counter_bg"/> 
</LinearLayout> 

이것은 내가 지금 사용하고있는 스타일 코드는

스타일을 사용하여 문제를 해결할 수있는 방법은 없습니까?

답변

1

하는 선이 사업장 및 프로젝트 메뉴 항목 사이에 수직으로 정렬 중앙해야한다. 프로젝트 항목을 특별한 메뉴 항목으로 식별하고 다른 레이아웃을 적용하고 있습니다.

레이아웃 코드는 다음과 같습니다

<?xml version="1.0" encoding="utf-8"?> 

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="50dp" 
     android:orientation="horizontal" 
     android:background="@drawable/project_top_line"> 
    </LinearLayout> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="50dp" 
     android:orientation="horizontal"> 

     <ImageView 
      android:id="@+id/icon" 
      android:layout_width="45dp" 
      android:layout_height="45dp" 
      android:src="@drawable/notification_action" 
      android:padding="10dp"/> 

     <TextView 
      android:id="@+id/menuItemName" 
      android:layout_width="0dp" 
      android:layout_height="match_parent" 
      android:layout_weight="1" 
      android:gravity="center_vertical" 
      android:textSize="19sp" 
      android:textColor="@color/white"/> 

     <TextView android:id="@+id/counter" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:gravity="center_vertical" 
      android:textAppearance="@android:style/TextAppearance.Medium" 
      android:textColor="@color/counter_text_color" 
      android:background="@drawable/counter_bg"/> 
    </LinearLayout> 
</LinearLayout> 

스타일 코드는 다음과 같습니다

최초의 선형 레이아웃의 중간에 선을 그립니다
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="line"> 
    <stroke 
     android:width="2dp" 
     android:color="@color/base_app_color" /> 
    <solid android:color="@android:color/transparent"/> 
</shape> 

. 당신의 LinearLayout 배경으로

1

난 당신은 그래서 당신은 같은 것을 할 수있는 파란색 선 필요하다고 생각 :

<View 
    android:layout_width="match_parent" 
    android:layout_height="2dp" 
    android:background="@android:color/holo_blue_dark" /> 
+1

작동하지만 내 솔루션을 메뉴를 어셈블리하는 데 더 단순하게 사용하기로 결정하고 작업 영역과 프로젝트 메뉴 항목 사이에 중간을 정렬했습니다. – Proverbio

3

설정이 코드 드로어 블 :

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

    <item android:left="-2dp" android:bottom="-2dp" android:right="-2dp"> 
     <shape android:shape="rectangle"> 
      <stroke android:width="2dp" android:color="@color/borderColor" /> 
      <solid android:color="@color/backgroundColor" /> 
     </shape> 
    </item> 

</layer-list> 
+0

좋은 해결책 그것은 투명한 배경으로 완벽하게 작동합니다! – box

+0

아주 좋은 해결책 –

0

파일이라고 border.xml을 확인하고 단지 위쪽 테두리를 만들기위한 레이아웃에이를 추가 할 수 있습니다. 이 같은

<item 
    android:left="-1dp" 
    android:right="-1dp" 
    android:bottom="-1dp" 
    android:top="1dp"> 
    <shape 
     android:shape="rectangle"> 
     <stroke 
      android:width="0.5dp" 
      android:color="@color/black" /> 
     <solid android:color="@android:color/transparent" /> 
    </shape> 
</item> 

:

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_alignTop="@+id/kellton_logo" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentStart="true" 
    android:background="@drawable/border" 
    > 

나를 위해 도움이되었습니다.

관련 문제