在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. }  


在Button任意位置加图片效果

采用Spanned也不是什么新鲜事了,呵呵。这里只提供一种思路。不止Button,任意可以显示文字的View都可以这样做。

你可能感兴趣的:(button)