DrawableTop не показывает drawableTop

Я пытаюсь использовать drawableTop, чтобы показать изображение над текстом в кнопке.

Моя фотография с SDCard, а не рисовать.

Кроме того, размер кнопки может меняться в зависимости от количества отображаемых кнопок. Больше кнопок, меньше кнопок, затем меньше изображений.

Вот как я создаю свои кнопки:

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

Вот стиль кнопки файла XML:

<?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 ответ

Решение

Я думаю, чего не хватает, чтобы у вашего рисованного объекта уже был вызван setBounds(Rect), также попробуйте загрузить изображение в растровое изображение, а затем получить его в нарисованном:

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);

Другие вопросы по тегам