您的位置:首页 > 移动开发 > Android开发

This tag and its children can be replaced by one <TextView/> and a compound drawable

2016-06-08 09:30 639 查看
1.当是以下布局,LinearLayout会报警告:This tag and its children can be replaced by one and a compound drawable

<LinearLayout
android:id="@+id/ll_assort_video"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="vertical">

<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/category_icon_video"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/video"/>
</LinearLayout>


2.修改方法:将TextView和ImageVie合成一个,直接在xml中利用TextView的 android:drawableTop、android:drawableRight等属性指定!如下:

<LinearLayout
android:id="@+id/ll_assort_video"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="vertical">

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/video"
android:drawableTop="@drawable/category_icon_video"/>
</LinearLayout>


3.如果要在代码中设置textview上下左右图片,使用以下方法:

setCompoundDrawables(Drawable left, Drawable top, Drawable right, Drawable bottom)


但Drawable对象必须使用这个方法,否则图片不展示

setBounds(int left, int top, int right, int bottom)


在textview上方设置图片的总体使用方法:

Drawable drawable= getResources().getDrawable(R.drawable.drawable);
drawable.setBounds(0, 0, drawable.getMinimumWidth(), drawable.getMinimumHeight());
textview.setCompoundDrawables(null,drawable,null,null);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息