在Button任意位置加图片效果

通常情况会想到drawableLeft,drawableTop,drawableRight,drawableBotton,这样是可以做,但只能在四个位置。
下面这种办法可以实现任意位置:
Java代码 复制代码  收藏代码
  1. import android.app.Activity;   
  2. import android.graphics.drawable.Drawable;   
  3. import android.os.Bundle;   
  4. import android.text.Html;   
  5. import android.text.Spanned;   
  6. import android.text.Html.ImageGetter;   
  7. import android.widget.Button;   
  8.   
  9. public class demobutton extends Activity {   
  10.     /** Called when the activity is first created. */  
  11.     @Override  
  12.     public void onCreate(Bundle savedInstanceState) {   
  13.         super.onCreate(savedInstanceState);   
  14.         setContentView(R.layout.main);   
  15.            
  16.                 ImageGetter imgGetter = new Html.ImageGetter() {   
  17.                         @Override  
  18.                         public Drawable getDrawable(String source) {   
  19.                                 Drawable drawable = null;   
  20.                                 drawable = demobutton.this.getResources().getDrawable(   
  21.                                                 Integer.parseInt(source));   
  22.                                 drawable.setBounds(00, drawable.getIntrinsicWidth(),   
  23.                                                 drawable.getIntrinsicHeight());   
  24.                                 return drawable;   
  25.                         }   
  26.                 };   
  27.                    
  28.                 Button btn = (Button) findViewById(R.id.button1);   
  29.                 StringBuffer sb = new StringBuffer();   
  30.                 sb.append("<img src=\"").append(R.drawable.button1).append("\"/>").append("<font color=\"6f6f6f\">按钮上加图片效果</font>");;   
  31.                 Spanned span = Html.fromHtml(sb.toString(), imgGetter, null);   
  32.                 btn.setText(span);   
  33.                 sb = null;   
  34.     }   
  35. }  
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都可以这样做。

转载于:https://www.cnblogs.com/xsmhero/archive/2012/06/15/2550719.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值