android - 如何以编程方式调整 ImageView 的大小?

标签 android

我是 android 的初学者,我在调整图像大小方面遇到问题。图像大小每次都会改变(通过打印行检查),但不会出现在实际图像中。

我的代码:

   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;
    }
    }

最佳答案

您需要通知 UI 您的 View 边界已更改。只需在 println 方法下方添加这一行 image.requestLayout(); 它就可以工作了:

       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();
            }
        });

关于android - 如何以编程方式调整 ImageView 的大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28147902/

相关文章:

android - 初学者用 eclipse 学习 Unity 3d

java - Fragment prev 已弃用 如何更改此代码 Android studio

android - 处理选项卡、操作栏、 Activity 和 fragment

android - 视频+录音机安卓

java - 在动态edittext和textview中设置id

Android - 是否可以为静态成员和方法使用自定义类而不是扩展应用程序类

java - 迁移到 Android Studio

android - LayoutParams.addRule 是如何工作的?

android - Phonegap 3.0 构建缓慢

android - 解析 SDK Android - Facebook Graph API v2.0