Android开发疑问:能否在Button中设置指定图片,还是需使用ImageButton?
不需要专门使用ImageButton,普通Button控件完全可以实现你需要的图文组合样式,下面是几种常用实现方式:
XML布局直接配置
在Button的布局标签里,通过android:drawableLeft/android:drawableRight等属性指定图标位置,搭配android:drawablePadding控制图标与文字的间距,示例代码:<Button android:id="@+id/action_btn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="按钮文本" android:drawableLeft="@drawable/target_icon" android:drawablePadding="8dp" />代码动态设置
要是需要在运行时调整图标,可调用setCompoundDrawablesWithIntrinsicBounds()方法:Button btn = findViewById(R.id.action_btn); Drawable icon = getResources().getDrawable(R.drawable.target_icon); // 参数依次对应左、上、右、下四个方向的图标,不需要的传null即可 btn.setCompoundDrawablesWithIntrinsicBounds(icon, null, null, null); btn.setCompoundDrawablePadding(8);复杂状态样式(可选)
如果需要按钮在点击、选中等不同状态下切换图标或样式,可以在res/drawable目录下创建Selector选择器资源,再通过上述属性或方法引用,实现状态联动的视觉效果。
如果你的需求是将整张复合图片作为按钮背景,直接设置android:background属性即可,同样无需使用ImageButton。
内容的提问来源于stack exchange,提问作者Moh Dev
相关产品推荐
相关产品推荐

