`

在Button任意位置加图片效果

阅读更多
通常情况会想到drawableLeft,drawableTop,drawableRight,drawableBotton,这样是可以做,但只能在四个位置。
下面这种办法可以实现任意位置:
import android.app.Activity;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.text.Html;
import android.text.Spanned;
import android.text.Html.ImageGetter;
import android.widget.Button;

public class demobutton extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
                ImageGetter imgGetter = new Html.ImageGetter() {
                        @Override
                        public Drawable getDrawable(String source) {
                                Drawable drawable = null;
                                drawable = demobutton.this.getResources().getDrawable(
                                                Integer.parseInt(source));
                                drawable.setBounds(0, 0, drawable.getIntrinsicWidth(),
                                                drawable.getIntrinsicHeight());
                                return drawable;
                        }
                };
                
                Button btn = (Button) findViewById(R.id.button1);
                StringBuffer sb = new StringBuffer();
                sb.append("<img src=\"").append(R.drawable.button1).append("\"/>").append("<font color=\"6f6f6f\">按钮上加图片效果</font>");;
                Spanned span = Html.fromHtml(sb.toString(), imgGetter, null);
                btn.setText(span);
                sb = null;
    }
}




采用Spanned也不是什么新鲜事了,呵呵。这里只提供一种思路。不止Button,任意可以显示文字的View都可以这样做。
  • 大小: 15.7 KB
分享到:
评论
6 楼 木本水源 2015-06-14  
楼主牛叉。
5 楼 hongbingfans 2013-10-16  
鄙视3楼的,楼主都说了用android自带的方位图只能设置上下左右四个位置,你还说

“不过在xml中有个属性是android:drawableLeft用这个属性导入图片,效果更好.简单,google已经封装好的.”     
4 楼 hongbingfans 2013-10-16  
文字如何和图片垂直居中,文字和图片的间距如何设置?这都是问题?,你的方法值可以设置图片和字体颜色!!!
3 楼 kooqianfeng 2011-10-28  
不过在xml中有个属性是android:drawableLeft用这个属性导入图片,效果更好.简单,google已经封装好的.
2 楼 kooqianfeng 2011-10-28  
好啊,楼主牛逼!可是怎么让文字居中的,没明白!!!我在xml一顿狂设,还不是不行!悲催!
1 楼 ldci3gandroid 2011-10-22  
谢谢短裤党的精彩博文 !!!

相关推荐

    Unity UGUI 效果 之 多页翻页,多页任意翻页的简单效果实现(示例演示为动态加载多图片实现翻页预览效果)

    Unity UGUI 效果 之 多页翻页,多页任意翻页的简单效果实现(示例演示为动态加载多图片实现翻页预览效果) 实现原理 1、通过展示的总的动态图片个书,每页每页展示图片的数量,分为若干页 2、Button实现前后翻页,...

    C#程序开发范例宝典(第2版).part02

    实例096 在Button按钮上绘图 138 2.11 焦点变换与输入控制 140 实例097 按回车键焦点在控件中移动的录入窗口 140 实例098 程序运行时拖动控件 141 实例099 控件得到焦点时变色 142 实例100 控件的输入限制 143 ...

    C#程序开发范例宝典(第2版).part13

    实例096 在Button按钮上绘图 138 2.11 焦点变换与输入控制 140 实例097 按回车键焦点在控件中移动的录入窗口 140 实例098 程序运行时拖动控件 141 实例099 控件得到焦点时变色 142 实例100 控件的输入限制 143 ...

    C# for CSDN 乱七八糟的看不懂

    而且集合的元素可以是任意对象,操作也比数组灵活的多。 使用集合时,必须注意集合的生命期问题。如果有两个集合 L1 和 L2,使用 了 L1=L2; 后,只要 L2 生命期没有终结,它的以后的变化就可能会影响到 L1 的数值。...

    C#程序开发范例宝典(第2版).part08

    实例096 在Button按钮上绘图 138 2.11 焦点变换与输入控制 140 实例097 按回车键焦点在控件中移动的录入窗口 140 实例098 程序运行时拖动控件 141 实例099 控件得到焦点时变色 142 实例100 控件的输入限制 143 ...

    C#程序开发范例宝典(第2版).part12

    实例096 在Button按钮上绘图 138 2.11 焦点变换与输入控制 140 实例097 按回车键焦点在控件中移动的录入窗口 140 实例098 程序运行时拖动控件 141 实例099 控件得到焦点时变色 142 实例100 控件的输入限制 143 ...

    C#.net_经典编程例子400个

    45 实例044 在关闭窗口前加入确认对话框 45 实例045 使用任意组件拖动窗体 46 实例046 修改提示字体及颜色 47 1.14 其他技术 48 实例047 如何为MDI类型窗体设置背景图片 48 实例048 向...

    安卓zxing 代码demo

    而上面的button是我们添加的一个额外的控件,在这里你可以添加任意的控件,各种UI效果等。 5. 创建my_camera.xml布局文件,这个就是扫描二维码的界面 要自定义二维码扫描页面,就在这个布局里进行修改,这里我加了一...

    C#开发实例大全(基础卷).软件开发技术联盟(带详细书签) PDF 下载

    《C#开发实例大全(基础卷)》筛选、汇集了C#开发从基础知识到高级应用各个层面约600个实例及源代码,每个实例...实例230 在ComboBox下拉列表中显示图片 304 实例231 用ComboBox控件制作浏览器 网址输入框 305 实例232...

Global site tag (gtag.js) - Google Analytics