2014-09-26 21 views
18

Düzenleme düzenini program aracılığıyla değiştirmeyi denerim. İki düğmem var. Tek bir tuşla, mizanpaj pozisyonumu değiştiriyorum ve ikinci butonu kaydetme pozisyonu cadıyı almaya çalışıyorum ilk defa.android RelativeLevout değiştirilme yüksekliği programlı olarak

<RelativeLayout 
    android:id="@+id/popaplayout" 
    android:layout_width="fill_parent" 
    android:layout_height="200dp" > 

Bu benim düzen ve ilk düğmesini ben 300 boy 200dp yazdım ve programlı xml dosyasında

RelativeLayout.LayoutParams parms = new RelativeLayout.LayoutParams(
        RelativeLayout.LayoutParams.FILL_PARENT, 
        RelativeLayout.LayoutParams.FILL_PARENT); 
parms.addRule(RelativeLayout.BELOW, R.id.movies_title_layout); 
scrollpopap.setLayoutParams(parms); 
scrollpopap.setScrollingEnabled(true); 

ikinci düğmenin

RelativeLayout.LayoutParams rel_btn = new RelativeLayout.LayoutParams(
        ViewGroup.LayoutParams.WRAP_CONTENT, 300); 
rel_btn.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM); 
scrollpopap.setLayoutParams(rel_btn); 
scrollpopap.setScrollingEnabled(false); 

yazdı ve farklı yükseklik vardır. Programlı olarak kaydetme yüksekliğini nasıl yazabilirim?

kimse çözümünü biliyorsa böyle px DP dönüştürme bana sayesinde

cevap

31

İlk piksel içine 200 dp dönüştürmek -

final float scale = getContext().getResources().getDisplayMetrics().density; 
int pixels = (int) (200 * scale + 0.5f); 
Sonra

programlama yoluyla ayarlamak,

RelativeLayout.LayoutParams rel_btn = new RelativeLayout.LayoutParams(
        ViewGroup.LayoutParams.WRAP_CONTENT, pixels); 
      rel_btn.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM); 
      scrollpopap.setLayoutParams(rel_btn); 
      scrollpopap.setScrollingEnabled(false); 
+1

sayesinde dp ve RelativeLayout gelen genişliğini değiştirmek değil, nasıl çocuk genişliğini güncelleyebilirim? – Beka

+0

çalışıyor ... – jose920405

20

yardım edin.

final float scale = getContext().getResources().getDisplayMetrics().density; 
int px = (int) (100 * scale + 0.5f); // replace 100 with your dimensions 

Göreceli düzende bazı layout_gravity. ve java kodu ile yükseklik ve genişlik değiştirin.

RelativeLayout rl = (RelativeLayout) findViewById(R.id.yourId); 
rl.getLayoutParams().height = px; 
rl.getLayoutParams().width = px; 
+0

Sen benim match_parent ile RelativeLayout İçinde bir çocuk varsa genişliğinde burada – Kostya

3

bunu kullanın

RelativeLayout layout = (RelativeLayout) findViewById(R.id.yourlayout_id); 
// Gets the layout params that will allow you to resize the layout 
LayoutParams params = layout.getLayoutParams(); 
params.height = 320; 
params.width = 320; 
2

RelativeLayout yüksekliğini değiştirmek isterseniz, o zaman bu yardım.

RelativeLayout relativeLayout = (RelativeLayout) findViewById(R.id.yourId); 
relativeLayout.getLayoutParams().height = 100; 
relativeLayout.getLayoutParams().width = 100;