Белая граница вместе с прозрачностью в "LinearLayout" - программирование
Подтвердить что ты не робот

Белая граница вместе с прозрачностью в "LinearLayout"

Я хотел добавить линейный макет, имеющий прозрачный фон, а также белые границы. Проблема в том, что, насколько я имею googled, я могу достичь только одного из них.

Вот что я сделал:

  • Сохранено следующее: border.xml в drawable

      <?xml version="1.0" encoding="utf-8"?>
      <layer-list xmlns:android="http://schemas.android.com/apk/res/android">
      <item> 
           <shape android:shape="rectangle">
           <solid android:color="#FFFFFF" /> 
      </shape>
      </item>   
         <item android:left="5dp" android:right="5dp" android:top="5dp" android:bottom="5dp" >  
         <shape android:shape="rectangle"> 
         </shape>
       </item>    
      </layer-list> 
    
  • мой существующий макет страницы

         <LinearLayout
            android:id="@+id/quiz"
            android:layout_width="150dp"
            android:layout_height="120dp"
            android:background="#66041414"          <-------- replaced it with android:background="@drawable/border"
            android:orientation="vertical"
            android:layout_marginLeft="5dp" >
    
             ......
           </LinearLayout>
    

Я получаю непрозрачный фон, когда была включена граница.

Я хотел получить окончательный результат:


Reference image

полностью застрял с ним. Просто хотел найти выход, чтобы достичь этого. Любые предложения были бы весьма полезными.

4b9b3361

Ответ 1

Вы можете использовать для фона макета:

Вы можете изменить радиус для угловой формы, если хотите. Но инсульт создает границу, а сплошная часть - это фон, который мы делаем прозрачным.

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
       android:shape="rectangle">
  <corners
      android:radius="2dp"
      android:topRightRadius="0dp"
      android:bottomRightRadius="0dp"
      android:bottomLeftRadius="0dp" />
  <stroke
      android:width="1dp"
      android:color="@android:color/white" />
  <solid android:color="@android:color/transparent"/>
</shape>

и мой тест layout.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/ll1"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >


    <LinearLayout 
        android:id="@+id/ll2"
        android:layout_height="50dp"
        android:layout_width="50dp"
        android:background="@drawable/my_transparent_linear_layout"></LinearLayout>
</LinearLayout>

Это работает, Ниже приведено доказательство:

enter image description here

Ответ 2

Xml Drawable for background:

<shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:radius="30dp" />
<stroke android:width="5dp" android:color="#ffffffff"/>
<solid android:color="#66000000"/>
</shape>

Настройте радиус, ширину и темную прозрачность цвета (#ff и # 66), как вам удобно.

Ответ 3

Для этого вы можете использовать два макета aligned один верх другого, а затем установить фон transparent для top view и установить белую рамку в качестве фона для bottom view. Вы можете сделать это внутри relative layouts.

Ответ 4

В самом деле, хорошее предложение @Ali Imran, проверьте ниже, надеюсь, что это поможет.

back.xml

<?xml version="1.0" encoding="UTF-8"?> 
    <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> 
         <stroke android:width="1dp" android:color="#dd7b7a"/>
         <corners android:bottomRightRadius="10dp" android:bottomLeftRadius="10dp" 
         android:topLeftRadius="10dp" android:topRightRadius="10dp"/> 
         <solid android:color="#dd7b7a"/>
     </shape>

main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:gravity="center"
    >
<LinearLayout 
     android:padding="4dip"
    android:orientation="vertical"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@drawable/back"
    android:gravity="center_horizontal"
    >
<LinearLayout  
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
   android:background="@drawable/tile_mode" // your transparent image
    />
</LinearLayout>  
</LinearLayout>

также проходят через ссылки в том, что способ использования xml будет работать для вас.

Растровое изображение с закругленными углами с штрихом