2013-02-14 64 views
0

我在其他主題中找不到我問題的答案。防止ImageView中的圖像在被RelativeLayout拖出時調整大小

我有一個ImageView背景可繪製。該ImageView上有一個onTouchListener,可以拖動它。我現在想要添加一個ImageResource到這個視圖(連同一個填充)。該圖像應始終位於(方形)ImageView的中間。現在的問題是:如果將整個ImageView拖出顯示屏,ImageView中的圖像開始縮小/調整大小。當我將它拖回窗口時,它會再次增長到允許的大小(因爲有填充)。

如何防止在拖出窗口時調整圖像大小?

RelativeLayout layout = (RelativeLayout) findViewById(R.id.layout); 
ImageView i = new ImageView(this); 
i.setPadding(10); 
i.setImageResource(R.drawable.image); 
i.setBackgroundDrawable(getResources().getDrawable(R.drawable.bg)); 
i.setPositionAndSize(0, 0); // creates layout params and positions 
          // it with margins in relative layout 
i.setOnTouchListener(touch); 
layout.addView(i); 

回答

0

如果此相對佈局在layout_width或height上具有WrapContent屬性,則這些屬性將動態更改。

添加視圖時,您正在修改其內容等等這些屬性。

您需要像這樣將layout屬性設置爲這個imageView。你要設置的positionAndSize,必須在佈局則params的屬性進行設置:

RelativeLayout.LayoutParams lyp = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT,RelativeLayout.LayoutParams.WRAP_CONTENT); 
ImageView i = new ImageView(this); 
      (the properties you want the parent of the view (layout) to receive must be setted here in "lyp"). 
i.setLayoutParams(lyp); 
layout.addView(i,lyp); 

請記住,如果你添加的東西在相對佈局,這些屬性是必要的。

相對佈局設計爲適合固定高度和寬度的內容,因此請嘗試在佈局中修復這些屬性。

希望沒有幫助!

相關問題