이미지 보기와 텍스트 보기가 포함된 선형 레이아웃 대신 복합 그리기 가능한 테이블을 사용하는 방법
내 코드에 대해 새 린트 도구를 실행했습니다.좋은 제안들이 많이 나왔는데, 이번 건은 이해할 수가 없습니다.
이 태그와 해당 태그의 자식은 하나와 복합 그리기 가능한 것으로 대체할 수 있습니다.
문제: 복합 드로잉을 사용하여 현재 노드를 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
'programing' 카테고리의 다른 글
iOS 기기의 디스플레이가 어두워지거나 꺼지는 것을 방지하려면 어떻게 해야 합니까? (0) | 2023.09.02 |
---|---|
팬더 또는 다른 파이썬 모듈로 특정 열 읽기 (0) | 2023.09.02 |
Android에서의 활동 전환 (0) | 2023.09.02 |
Mysql2 분할 오류 ubuntu22.04 (0) | 2023.09.02 |
sin_addr을 수행합니다.s_addr = INADDR_ANY; httonl이 필요합니까? (0) | 2023.09.02 |