码迷,mamicode.com
首页 > 其他好文 > 详细

关于getWidth(),getHeight()的一个坑

时间:2015-04-08 23:13:51      阅读:243      评论:0      收藏:0      [点我收藏+]

标签:

有时,我们为了好的布局,会在程序中,动态地获得一个View的宽高。在做一个练习时,我直接将

int width = gridLayout.getWidth()/10;
int height = gridLayout.getHeight()/10;

这两句放在了onCreate()中:  

     @Override
     protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        getEveryView();      
        int width = gridLayout.getWidth()/10;
        int height = gridLayout.getHeight()/10;
}

这样,width和height的值为0。

这里,必须注意到,我们如果把这两个函数中,当前的Activity都还没有Create完成,自然宽高均是未定的。所以返回值为0。

 

然后,我将获取宽高的方法放在onPause中执行

    @Override
    protected void onPause() {
        super.onPause();
        int width = gridLayout.getWidth();
        int height = gridLayout.getHeight();
        Toast.makeText(getApplicationContext(),width+","+height,Toast.LENGTH_SHORT).show();
    }

能够成功地获得宽高。

 

接着,我将获得宽高的方法放在onResume中执行

    @Override
    protected void onResume() {
        super.onResume();
        int width = gridLayout.getWidth();
        int height = gridLayout.getHeight();
        Toast.makeText(getApplicationContext(),width+","+height,Toast.LENGTH_SHORT).show();
    }

Activity在第一个生命周期时,无法获得宽高。当我Stop之后,再回来,onResume正常获取了宽高。

 

最后,我将获得宽高的方法放在Button的OnClickListener中

        testButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                int width = gridLayout.getWidth()/10;
                int height = gridLayout.getHeight()/10;
                Toast.makeText(getApplicationContext(),width+","+height,Toast.LENGTH_SHORT).show();
                imageView1.setImageBitmap(decodeSampledBitmapFromResource(getResources()
                        ,R.drawable.ic_launcher_big
                        , width
                        ,height));
            }
        });

获得成功。

在此记录,以上。

 

关于getWidth(),getHeight()的一个坑

标签:

原文地址:http://www.cnblogs.com/fishbone-lsy/p/4404636.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!