programing

이미지 보기와 텍스트 보기가 포함된 선형 레이아웃 대신 복합 그리기 가능한 테이블을 사용하는 방법

newsource 2023. 9. 2. 08:31

이미지 보기와 텍스트 보기가 포함된 선형 레이아웃 대신 복합 그리기 가능한 테이블을 사용하는 방법

내 코드에 대해 새 린트 도구를 실행했습니다.좋은 제안들이 많이 나왔는데, 이번 건은 이해할 수가 없습니다.

이 태그와 해당 태그의 자식은 하나와 복합 그리기 가능한 것으로 대체할 수 있습니다.

문제: 복합 드로잉을 사용하여 현재 노드를 TextView로 바꿀 수 있는지 확인합니다.

ImageView와 TextView가 포함된 선형 레이아웃을 복합 그리기 가능한 것으로 보다 효율적으로 처리할 수 있습니다.

그리고 여기 제 레이아웃이 있습니다.

<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_centerInParent="true">

<ImageView 
    android:id="@+id/upImage"
    android:layout_width="20dp"
    android:layout_height="20dp"
    android:layout_gravity="center_vertical"
    android:scaleType="centerInside"
    android:src="@drawable/up_count_big">
</ImageView>

<TextView
    android:id="@+id/LikeCount"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginLeft="2dp"
    android:layout_marginBottom="1dp"
    android:textColor="@color/gray"
    android:textSize="16sp"
    android:layout_gravity="center_vertical">
</TextView>
</LinearLayout>

이 경우 화합물을 그릴 수 있게 만드는 구체적인 예를 누가 제공할 수 있습니까?

TextView왼쪽, 위쪽, 오른쪽 및 아래쪽에 각각 하나씩 4개의 복합 드로잉 가능합니다.

당신의 경우, 당신은 필요하지 않습니다.LinearLayout그리고.ImageView조금도.그냥 추가android:drawableLeft="@drawable/up_count_big"당신에게TextView.

텍스트 보기 #set복합드로블 참조자세한 내용은 Intrinsic Bounds를 참조하십시오.

어떤 이유로 코드를 통해 추가해야 하는 경우 다음을 사용할 수 있습니다.

mTextView.setCompoundDrawablesWithIntrinsicBounds(left, top, right, bottom);

왼쪽, 위쪽, 오른쪽 아래쪽은 그리기 가능합니다.

여기에 덧붙이자면, 이 게시물에 따라 도면의 너비와 높이를 정의하는 것이 중요한 것 같습니다.

(그의 코드는 작동합니다)

일반 복합 그리기 구현을 사용할 수 있지만 그리기 가능한 크기를 정의해야 하는 경우 다음 라이브러리를 사용합니다.

https://github.com/a-tolstykh/textview-rich-drawable

다음은 사용 방법의 작은 예입니다.

<com.tolstykh.textviewrichdrawable.TextViewRichDrawable
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Some text"
        app:compoundDrawableHeight="24dp"
        app:compoundDrawableWidth="24dp" />

언급URL : https://stackoverflow.com/questions/8318765/how-do-i-use-a-compound-drawable-instead-of-a-linearlayout-that-contains-an-imag