android : drawableLeft 여백 및 / 또는 패딩 여백 또는 패딩을 설정할 수 android:drawableLeft있습니까?

?로 추가 한 이미지의 여백 또는 패딩을 설정할 수 android:drawableLeft있습니까?



답변

언급 한 바와 같이 android:drawablePadding버튼이 충분히 작 으면 텍스트와 드로어 블 사이에 패딩 만 강제합니다.

큰 버튼을 배치 할 때 및 버튼 android:drawablePadding과 함께 사용할 수 있습니다android:paddingLeftandroid:paddingRight 텍스트를 강제하고 버튼의 중심을 향해 안쪽으로 당김 수 있습니다. 왼쪽 및 오른쪽 패딩을 개별적으로 조정하면 레이아웃을 매우 세부적으로 조정할 수 있습니다.

다음은 패딩을 사용하여 텍스트와 아이콘을 기본 설정보다 더 가깝게 밀어 넣는 예제 버튼입니다.

<Button android:text="@string/button_label"
    android:id="@+id/buttonId"
    android:layout_width="160dip"
    android:layout_height="60dip"
    android:layout_gravity="center"
    android:textSize="13dip"
    android:drawableLeft="@drawable/button_icon"
    android:drawablePadding="2dip"
    android:paddingLeft="30dip"
    android:paddingRight="26dip"
    android:singleLine="true"
    android:gravity="center" />  


답변

TextView에는 트릭을 수행 해야하는 android : drawablePadding 속성이 있습니다.

android : drawablePadding

드로어 블과 텍스트 사이의 패딩입니다.

“14.5sp”와 같은 단위가 추가 된 부동 소수점 숫자 인 차원 값이어야합니다. 사용 가능한 단위는 px (픽셀), dp (밀도 독립적 픽셀), sp (기본 글꼴 크기에 따라 크기가 조정 된 픽셀), (인치), mm (밀리미터)입니다.

이 유형의 값을 포함하는 자원 ( “@ [package :] type : name”형식) 또는 테마 속성 ( “? [package :] [type :] name”형식)에 대한 참조 일 수도 있습니다. .

이것은 전역 속성 자원 기호 drawablePadding에 해당합니다.


답변

android:drawablePadding버튼이 2를 함께 뭉치기에 충분히 작은 경우에만 텍스트와 드로어 블 사이에 패딩 간격을 만듭니다. 버튼이 결합 된 너비 (drawableLeft / drawableRight의 경우) 또는 높이 (drawableTop / drawableBottom의 경우)보다 넓은 경우 drawablePadding은 아무 작업도 수행하지 않습니다.

지금도이 문제로 어려움을 겪고 있습니다. 내 버튼은 상당히 넓고 아이콘은 버튼의 왼쪽 가장자리에 매달려 있으며 텍스트는 가운데 중앙에 있습니다. 이 문제를 해결하는 유일한 방법은 포토샵으로 캔버스의 왼쪽 가장자리에 빈 픽셀을 추가하여 드로어 블에 여백을 굽는 것입니다. 이상적이지 않으며 실제로 권장되지 않습니다. 그러나 그것은 TextView / Button을 다시 작성하기에 부족한 지금의 스톱 갭 솔루션입니다.


답변

예. 다음과 같이 drawablePadding 을 사용하십시오 .

<TextView
        android:id="@+id/tvHeader"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Settings and Contents"
        android:drawableLeft="@drawable/icon_success"
        android:drawablePadding="10dp" />


답변

drawable resources.xml 만들기

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_checked="true">
        <inset android:drawable="@drawable/small_m" android:insetLeft="10dp" android:insetTop="10dp" />
    </item>
    <item>
        <inset android:drawable="@drawable/small_p" android:insetLeft="10dp" android:insetTop="10dp" />
    </item>
</selector>


답변

android:drawablePadding당김 아이콘에 패딩을 제공하는 가장 쉬운 방법입니다하지만 당신은 같은 특정에게 한 쪽의 패딩을 줄 수 paddingRight또는 paddingLeft당김의 당신이 그것으로 발굴 할 필요가 있음을 달성 icon.To. 당신이 적용하는 경우 그리고 paddingLeftpaddingRight에게 Edittext그것은 전체에 패딩을 배치합니다 Edittext당김 아이콘과 함께.


답변

편집 텍스트의 모양을 정의하고 여백을 채 웁니다. 예를 들어

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle" >
    <padding
        android:left="5dp"
        android:right="5dp"
    />
    <solid android:color="#F6F6F6" />
    <stroke
        android:width="1px"
        android:color="#C3C3C3" />

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

이 셰이프에 정의 된 패딩은 드로어 블 왼쪽 또는 오른쪽에 패딩을 제공하는 데 도움이됩니다 .———————- EditView에이 셰이프 적용

 <EditText
            android:id="@+id/example"
            android:layout_width="fill_parent"
            android:layout_height="36dp"
            android:layout_marginLeft="10dp"
            android:layout_marginRight="10dp"
            android:background="@drawable/shape2"
            android:drawableLeft="@drawable/icon1"
            android:drawablePadding="@dimen/txtDrwblPadding"
            android:ems="10"
         />

정의 된 모양을 배경으로 사용하면 EditText에 스타일과 여백을 drawableLeft에 부여합니다.