需求
需要实现上面是图片,下面是文字的空间,最简单的办法是直接用Button实现,不需要自定义。
实现
xml里实现
在xml布局文件中直接写
//xml
<Button
android:id="@+id/btn_audio_icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@null"
android:drawableTop="@Drawable/cam_audio"
android:text="Mark Man"
android:textColor="@drawable/normal_text_color_selector" />
</LinearLayout>
android:drawableTop方法就是在文字上部绘制图片
代码里实现
初始化btnAudioIcon(Button)就不讲了,直接调用
Drawable drawable = btnAudioIcon.getResources().getDrawable(R.drawable.cam_audio);
btnAudioIcon.setCompoundDrawablesWithIntrinsicBounds(null, drawable, null, null);
//这方法将原图drawable在文字上绘制
若调用setCompoundDrawables方法,还得设置边距setBounds
Drawable drawable = btnAudioIcon.getResources().getDrawable(R.drawable.cam_audio);
drawable.setBounds(left, top, right, bottom);
btnAudioIcon.setCompoundDrawables(null, drawable, null, null);