>source

스피너 배경을 설정 한 사각형 상자가 있지만 스피너와 함께 제공되는 아래쪽 화살표를 유지하고 싶습니다. 직사각형에 대한 code는 다음과 같습니다.

<?xml version="1.0" encoding="UTF-8" ?><shape xmlns:android="http://schemas.android.com/apk/res/android"><solid android:color="#ffffff" /><stroke android:width="2dp" android:color="#80000000" /><padding android:left="2dp" android:top="2dp" android:right="2dp" android:bottom="2dp" />

아래 그림 참조 :

왼쪽은 내가 현재 가지고있는 것, 오른쪽은 내가 이루고자하는 것 또는 적어도 거기 어딘가에 아래쪽 화살표가 있습니다. 이 배경을 만드는 방법에 대한 아이디어가 있습니까?

  • 답변 # 1

    uiautomator의 도움으로 code를 확인했는데 스피너 드롭 다운 화살표가 배경 세트와 함께 표시되지 않습니다.

    LayerList를 사용하고 중력 권한이있는 비트 맵을 가질 수 있습니다. 이제 비트 맵은 스피너로 설정된 배경의 일부입니다.

    <?xml version="1.0" encoding="utf-8"?><layer-list xmlns:android="http://schemas.android.com/apk/res/android" ><item><shape xmlns:android="http://schemas.android.com/apk/res/android">    <solid android:color="#ffffff"/>    <stroke
            android:width="2dp"
            android:color="#80000000"/>    <padding
            android:bottom="2dp"
            android:left="2dp"
            android:right="2dp"
            android:top="2dp"/></shape></item>    <item>        <bitmap
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:gravity="right"
                android:src="@mipmap/ic_launcher" />    </item></layer-list>

    결과 :

    물론 비트 맵 주변에는 테두리가 없습니다. 이 링크를 확인하고 요구 사항에 맞는지 확인할 수 있습니다.

    @ user1197993 도움이되어 기쁩니다. 소스 code를 살펴보고 스피너를 스타일링하여 더 간단하고 해키가 없도록 시도했지만 아무것도 찾지 못했습니다. 더 나은 대안을 찾으면 게시물을 업데이트하겠습니다.

    Raghunandan2021-02-23 11:15:58

    비트 맵의 ​​크기를 변경하는 방법을 알고 있습니까? 너무 커서 레이아웃 너비와 높이를 특정 값으로 설정해도 아무 효과가 없습니다.

    user1120163222021-02-23 11:15:58

    @ user1197993 developer.android.com/training/displaying-bitmaps/… 도움이되는지 문서를 확인하십시오.

    Raghunandan2021-02-23 11:15:58
  • 답변 # 2

    아래 XML code를 확인하여 필요한 것을 얻으십시오. Raghunandan 이 게시 /답변 한 것과 비슷하지만 약간의 수정이 있습니다. 이것이 도움이되기를 바랍니다.

    <?xml version="1.0" encoding="UTF-8" ?><selector xmlns:android= "http://schemas.android.com/apk/res/android">  <item>    <layer-list>      <item>        <shape android:thickness="2dp">          <gradient android:angle= "90" android:endColor= "#ffffff" android:startColor= "#ffffff" android:type= "linear"/>          <stroke android:width= "1dp" android:color= "#80000000"/>          <corners android:radius= "5dp"/>          <padding android:bottom= "3dp" android:left= "3dp" android:right= "3dp" android:top= "3dp"/>        </shape>      </item>      <item>        <rotate
               android:fromDegrees= "90"
               android:pivotX= "85%"
               android:pivotY= "50%"
               android:toDegrees= "90">          <shape
                 android:shape= "line"
                 android:thickness="2dp"
                 android:top= "1dp">            <stroke
                   android:color="#80000000"
                   android:width= "1dp"/>          </shape>        </rotate>      </item>      <item>        <bitmap
               android:gravity= "center|right" android:src= "@drawable/abc_btn_check_to_on_mtrl_015"/>      </item>    </layer-list>  </item></selector>

    code에 추가 한 자리 표시 자 이미지에 필요한 드로어 블을 사용합니다.

    이것이 도움이되기를 바랍니다.

    행운

  • 이전 UIContextMenuConfiguration을위한 iOS 13.0 UIMenu 및 UIAction
  • 다음 ios : UIButton은 모든 타겟 액션을 제거합니다.