2013-05-21 60 views
0

我在縮放的相對佈局上設置圖像。但是,在設置圖像時,佈局對齊規則會被破壞。該圖像應該與左側對齊,但會發生移位。圖像越大,圖像放置的距離越遠。其他佈局項目(例如依賴圖像位置的文本)也會移動。縮放後的圖像看起來很好,除了它的位置。ImageView在設置圖像時不符合佈局規則

圖像是200px,酒吧的高度的實際大小是70dp。我可以調整圖像大小,但是我想知道爲什麼發生這種情況。

編輯 - 我自己也嘗試設置圖像動態image.setImageResource(R.drawable.placeholder);

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout 
     xmlns:android="http://schemas.android.com/apk/res/android" 
     android:orientation="vertical" 
     android:background="@drawable/footer" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     > 
    <ImageView 
      android:id="@id/icon" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:src="@drawable/placeholder" 
      android:layout_alignParentLeft="true" 
      /> 
    <TextView 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:text="test" 
      android:layout_marginLeft="15dp" 
      android:layout_toRightOf="@id/icon" 
      android:layout_above="@id/username"/> 

    <TextView 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:id="@id/username" 
      android:text="user name test" 
      android:layout_marginBottom="15dp" 
      android:layout_marginLeft="15dp" 
      android:layout_toRightOf="@id/icon" 
      android:layout_alignParentBottom="true"/> 
    <ToggleButton 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:background="@drawable/play_media_btn_toggle" 
      android:layout_marginTop="15dp" 
      android:id="@id/play" 
      android:layout_alignParentRight="true" 
      android:textOn="" 
      android:textOff=""/> 
</RelativeLayout> 
+0

你能分享一下這個問題的截圖嗎? –

+1

你在imageview上設置了「adjustViewBounds」嗎?這可能是問題所在。 –

+0

@ Sandervan'tVeer修復它謝謝!如果您回覆,我會將其設置爲正確的答案。我看到了這個文檔,但並沒有真正理解屬性的作用。 – serenskye

回答

0

設置你的ImageViewtrueadjustViewBounds可能會解決你的問題。默認情況下,ImageViews在縮放其內容時不會縮放邊界,從而創建混亂的佈局。

0

如果動態設置你的形象,當你的圖像大小調整你的持有人不設置所以你有一些奇怪的不成比例的差距,以適應圖像一邊(寬度或高度)。你需要動態地做到這一點,所以你會避免任何差距。編輯:這裏是一個例子,我如何縮放圖像(以適應寬度),然後將其設置爲持有人,並相應地調整大小持有人,這種方式我控制持有人和圖像和ImageView(持有人)規模類型的寬度是中央。

float scaleFactor = (float)rssLayout.getWidth()/(float)bitmap.getWidth();  
    bitmap = Bitmap.createScaledBitmap(bitmap, (int)(bitmap.getWidth() * scaleFactor), (int)(bitmap.getHeight() * scaleFactor), true); 
    bannerImage.setImageBitmap(bitmap); 
    LayoutParams params = (LayoutParams) bannerImage.getLayoutParams();    
    params.width = bitmap.getWidth(); 
    params.height = bitmap.getHeight(); 
    bannerImage.setLayoutParams(params); 

希望這有助於和喜歡你的工作

+0

Hey Marko,我最初動態地設置圖像,這導致我調查問題'imageView.setImageResource(placeholder_id);',這會產生相同的問題 – serenskye