2017-07-31 47 views
0

請幫幫我。我在RelativeLayout中定製了ImageView。 ImageView僅佔用部分屏幕。我使用.setImageBitmap(輸入)來設置圖像,並可以拖動ImageView。 當我使用setScaleX和setScaleY讓圖像變成了屏幕時,我的圖像爬到其他視圖(updateButton和其他ImageView)上。我怎樣才能將它設置在其他視圖下。爲什麼RelativeLayout.BELOW不起作用?

自定義的ImageView PARAMS:

params = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT); 
this.setScaleX(2); 
this.setScaleY(2); 
params.addRule(RelativeLayout.BELOW,R.id.updateButton); 
params.bottomMargin = updateButton.getLayoutParams().width*2; 

在屏幕上我有按鈕的TextView的底部。我希望ImageView不會爬到它們上面。爲什麼params.addRule(RelativeLayout.BELOW,)不起作用?

我的.xml:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context="com.example.eleizo.firstapplication.MainActivity" 
    android:id="@+id/topRL"> 

    <TextView 
     android:id="@+id/info" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentBottom="true" 
     android:layout_alignParentRight="true" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentStart="true" 
     android:layout_marginLeft="10dp" 
     android:layout_marginBottom="10dp" /> 

    <ImageButton 
     android:id="@+id/updateButton" 
     android:layout_width="30dp" 
     android:layout_height="30dp" 
     android:scaleType="fitXY" 
     android:layout_alignParentBottom="true" 
     android:layout_alignParentRight="true" 
     android:layout_alignParentEnd="true" 
     android:layout_marginRight="10dp" 
     android:layout_marginBottom="10dp" 
     android:src="@drawable/button_refresh_icon_72" 
     android:background="@null" /> 


</RelativeLayout> 
+0

有我 – Elena

回答

0

您可以使用addRule這樣,

params = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT); 
this.setScaleX(2); 
this.setScaleY(2); 
//params.addRule(RelativeLayout.BELOW, [id of the view below]); 
params.addRule(RelativeLayout.BELOW, R.id.updateButton); 
setLayoutParams(params); 
+0

無解它不工作。請參閱我編輯我的問題。 – Elena

+0

更新了我的答案。 –

0

試試這個

RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 
this.setScaleX(1); 
this.setScaleY(1); 
params.addRule(RelativeLayout.BELOW, [id of the view below]); 
layout.addView(tv1, params1);