2015-03-29 2 views
0

мое приложение содержит 3 imageviews и я использовал TextView в качестве держателя место, вот мой layout.xmlКак установить маржу макета динамически на андроид

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:orientation="vertical" 
android:background="@layout/back" 
android:paddingBottom="@dimen/activity_vertical_margin" 
android:paddingLeft="@dimen/activity_horizontal_margin" 
android:paddingRight="@dimen/activity_horizontal_margin" 
android:paddingTop="@dimen/activity_vertical_margin" 
tools:context=".SplasActivity" > 

<TextView 
    android:id="@+id/textView1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center" 
    android:text=" " /> 

<ImageView 
    android:id="@+id/imageView1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center" 
    android:scaleType="fitXY" 
    android:src="@drawable/list_sher" /> 

<ImageView 
    android:id="@+id/imageView2" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center" 
    android:scaleType="fitXY" 
    android:src="@drawable/list_shaer" /> 

<ImageView 
    android:id="@+id/imageView3" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center" 
    android:scaleType="fitXY" 
    android:src="@drawable/list_fav" /> 

тогда я использовал ниже кодов для изменения размер изображения, он отлично работает, но когда я устанавливаю поля для своего текста, все идет с ума. textview остается, но я не вижу никакого изображения!

private void setsize(){ 
    // this codes work fine // 
    DisplayMetrics dm=new DisplayMetrics(); 
    getWindowManager().getDefaultDisplay().getMetrics(dm); 
    int w=dm.widthPixels; 
    int h=dm.heightPixels; 

    int h2=(h/7); 
    int w2=w-((w*10)/100); 
    int h3=(h/20)+1; 

    LinearLayout.LayoutParams pram=new LinearLayout.LayoutParams(w2,h2); 
    img1.setLayoutParams(pram); 
    img2.setLayoutParams(pram); 
    img3.setLayoutParams(pram); 


    // the problem is here // 
    LinearLayout ll = new LinearLayout(this); 
    ll.setOrientation(LinearLayout.VERTICAL); 

    LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(
    LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT); 

    layoutParams.setMargins(0, h3, 0, 0); 
    ll.addView(txt1,layoutParams); 

} 

ответ

0

Второй параметр метода LayoutParams() должен быть WRAP_CONTENT, представляет собой высоту расположения, и MATCH_PARENT означает, что мнение хочет быть столь же большим, как его родитель, что причина ваших изображений исчезают:

LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT); 
Смежные вопросы