2015-01-26 4 views
1

Я новичок в Android и у меня проблема с изменением размера изображения. размер изображения меняется каждый раз (проверьте это по строке печати), но это не отображается в фактическом изображении.Как изменить размер ImageView Programmatically?

мой код:

import android.os.Bundle; 
    import android.app.Activity; 
    import android.content.DialogInterface.OnClickListener; 
    import android.view.Menu; 
    import android.view.View; 
    import android.view.animation.*; 
    import android.widget.Button; 
    import android.widget.ImageView; 

    public class MainActivity extends Activity { 

     public static int state = 2; 
     public static ImageView image; 
     @Override 
     protected void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.activity_main); 

      image = (ImageView) findViewById(R.id.imageView1); 

      final Button button2 = (Button) findViewById(R.id.button2); 
      button2.setOnClickListener(new View.OnClickListener() { 
       public void onClick(View v) { 

        System.out.println("1- "+image.getLayoutParams().height+", "+image.getLayoutParams().width); 
        image.getLayoutParams().height += 20; 
        image.getLayoutParams().width += 20; 
        System.out.println("2- "+image.getLayoutParams().height+", "+image.getLayoutParams().width); 
       } 
      }); 
     } 
@Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.main, menu); 
     return true; 
    } 
    } 

ответ

3

Вы должны уведомить пользовательский интерфейс, который изменили свой вид оценки. Просто добавьте эту строку image.requestLayout(); ниже вы println метод, и он должен работать:

 button2.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 

       System.out.println("1- "+image.getLayoutParams().height+", "+image.getLayoutParams().width); 
       image.getLayoutParams().height += 20; 
       image.getLayoutParams().width += 20; 
       System.out.println("2- "+image.getLayoutParams().height+", "+image.getLayoutParams().width); 
       image.requestLayout(); 
      } 
     }); 
+0

ваш ответ решить проблему. действительно, большое спасибо :) –

+0

Добро пожаловать, вы можете принять мой ответ. – rom4ek

Смежные вопросы