DrawableTop没有显示drawable

时间:2012-07-01 23:20:17

标签: android drawable compound-drawables

我正在尝试使用drawableTop在按钮中的文本上方显示图片。

我的照片来自SD卡,而非可画画。

此外,按钮的大小可能会根据显示的按钮数量而改变。更多按钮,更小的按钮,然后是更小的图像。

以下是我创建按钮的方法:

btn = (Button) LayoutInflater.from(
                            getBaseContext()).inflate(
                            R.layout.buttonstyle, l1, false);

这是XML文件buttonstyle:

<?xml version="1.0" encoding="UTF-8"?>
        <Button   xmlns:android="http://schemas.android.com/apk/res/android" 
            android:background="@drawable/roundcorners" 
            android:id="@+id/buttonTest" 
            android:scaleType="centerInside"
            android:cropToPadding="false"
            android:paddingLeft="5dp"
            android:paddingRight="5dp"
            android:paddingBottom="10dip"
            android:layout_height="fill_parent" 
            android:layout_width="wrap_content"
            android:text="Test text"
            android:textSize="40dip"
            android:textStyle="bold"
            android:textColor="#000000">
        </Button>

以下是我创建drawableTop的方法:

Drawable drawableTop = Drawable.createFromPath(endImagemVoltar); 
btn.setCompoundDrawables(null, drawableTop, null, null);

文本显示在按钮中,但图像不显示。

错误在哪里?

感谢任何帮助!

1 个答案:

答案 0 :(得分:1)

我想缺少的是你的drawable已经调用了setBounds(Rect) 还尝试将图片加载到位图中,然后将其放入drawable:

Bitmap bitmapImage = BitmapFactory.decodeFile(endImagemVoltar);
Drawable bgrImage = new BitmapDrawable(bitmapImage);

使用SetBounds:

 public void setBounds (int left, int top, int right, int bottom)

对于50x50尺寸,例如使用:

drawable.setBounds(0,0,50,50);