转载请注明出处:http://blog.youkuaiyun.com/droyon/article/details/37564419
很多人有如标题所述的需求,而且大多数人采用了自定义组件解决了需求,其实还可以有更“懒”的方法。
1、先附效果图:
2、方案。
首先,Activity.java
public class MainActivityTest extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main1);
}
}
其次,xml布局文件
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:orientation="vertical"
tools:context=".MainActivity" >
<Button
android:id="@+id/btn_ok0"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawableTop="@drawable/ic_launcher"
android:text="@string/hello_world" />
<Button
android:id="@+id/btn_ok1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawableBottom="@drawable/ic_launcher"
android:text="@string/hello_world" />
<Button
android:id="@+id/btn_ok2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawableLeft="@drawable/ic_launcher"
android:text="@string/hello_world" />
<Button
android:id="@+id/btn_ok3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawableRight="@drawable/ic_launcher"
android:text="@string/hello_world" />
</LinearLayout>
3、解析。
关键代码就是布局文件中的android:drawableBottom,drawableBottom这个属性(attr)属于TextView解析的范畴,我们使用的Button,它继承自TextView,因而能够使用此属性完成Drawable的布局。