2012-07-01 79 views
1

我想使用drawableTop在按鈕中的文本上方顯示圖片。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

我想現在缺少的是爲您繪製已經有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);

+0

你好蒙娜!謝謝你的回覆,對不起......我是一個noob,我怎麼設置Bounds? –

+0

編輯我的答案 –

+0

你好蒙娜,謝謝你的回答。無論如何,圖像的大小將根據顯示的按鈕數量而變化。更多按鈕,更小的圖像。當我使用ImageButton時,我不需要擔心設置大小。有沒有辦法使用類似「重量」的方法來使用您的解決方案?謝謝! –