2016-04-05 134 views
0

這是我目前情況的一個小小圖片。我猜很多圖像比許多單詞更好。 seekbar bug在不影響框架的情況下替換圖片

正如您所看到的,當我切換爲較小的圖像時,搜索欄大小會發生變化。我知道這是因爲seekbar寬度設置爲match_parent,圖像寬度爲wrap_content

我不知道如何解決這個問題,因爲我不能真正硬編碼寬度值,否則它可能會在各種屏幕尺寸上搞砸。

所以我的問題是:

有沒有辦法來防止這種乾淨的行爲?我可以簡單地在運行時獲得寬度,並將其設置爲最小寬度,並且可能會起作用(哎呀,我現在可以嘗試確認),但這對於執行代碼明智的做法是一件可怕的事情。

理想情況下,我猜想有一種方法可以防止在.xml文件中出現這種情況,但我無法弄清楚,玩不同的填充,邊距,縮放和佈局大小。

這裏就是你要找什麼:

<RelativeLayout 
     android:layout_weight="1" 
     android:layout_width="match_parent" 
     android:layout_height="0dp"> 
     <ImageButton 
      android:background="@android:color/transparent" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:scaleType="center" 
      android:id="@+id/playButton" 
      android:layout_alignParentLeft="true" 
      android:layout_marginLeft="30dp" 
      android:layout_centerVertical="true" 
      android:src="@drawable/play" 
      android:onClick="PlayButtonClicked" /> 
     <SeekBar 
      android:max="100" 
      android:id="@+id/volumeSeekBar" 
      android:layout_centerVertical="true" 
      android:layout_margin="15dp" 
      android:layout_height="wrap_content" 
      android:layout_width="match_parent" 
      android:layout_toRightOf="@+id/playButton" 
      android:layout_toLeftOf="@+id/muteButton" /> 
     <ImageButton 
      android:background="@android:color/transparent" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:scaleType="center" 
      android:id="@+id/muteButton" 
      android:layout_alignParentRight="true" 
      android:layout_marginRight="30dp" 
      android:layout_centerVertical="true" 
      android:onClick="MuteButtonClicked" 
      android:src="@drawable/sound" /> 
    </RelativeLayout> 
+0

你可以爲你的ImageButtons設置一個明確的寬度,或者利用權重(如果你切換到線性佈局)到你的視圖來避免它。例如,一個weightSum爲10的LinearLayout,每個ImageButton的寬度爲0dp,權重爲1,SeekBar的寬度爲0dp,權重爲8,則動態性較差。你也可以使用像scaleInside這樣的縮放類型,以確保你的圖像不會縮小奇怪。 – zgc7009

回答

0

理想的情況下這將是很好的音量圖標相同的尺寸。

如果這不是一個選項,嘗試用android:layout_marginRight="15dp+30dp+largest_icon_width_in_dp" 更換android:layout_toLeftOf="@+id/muteButton"其中15dp是你的搜索條右邊界,30DP是靜音按鈕右邊距。

第三個選項是將靜音按鈕的固定寬度設置爲等於最大圖像的寬度。

相關問題