Android获取控件的宽和高

幽沉谢世事,俯默窥唐虞。这篇文章主要讲述Android获取控件的宽和高相关的知识,希望能为你提供帮助。


            有时候我们须要在Activity的时候获取控件的宽和高来做一些操作,以下介绍三种获取宽和高的方式:

1. onWindowFocusChanged

@Override public void onWindowFocusChanged(boolean hasFocus) { super.onWindowFocusChanged(hasFocus); if (hasFocus) { int width = image.getMeasuredWidth(); int height = image.getMeasuredHeight(); Toast.makeText(MainActivity.this, "width = " + width + "---height = " + height, Toast.LENGTH_SHORT).show(); }}



2. post方式
@Override protected void onStart() { super.onStart(); image.post(new Runnable() {@Override public void run() { int width = image.getMeasuredWidth(); int height = image.getMeasuredHeight(); Toast.makeText(MainActivity.this, "onstart--width = " + width + "---height = " + height, Toast.LENGTH_SHORT).show(); } }); }



3. ViewTreeObserver
ViewTreeObserver observer = image.getViewTreeObserver(); observer.addOnGlobalLayoutListener(new OnGlobalLayoutListener() {@Override public void onGlobalLayout() { image.getViewTreeObserver().removeGlobalOnLayoutListener(this); int width = image.getMeasuredWidth(); int height = image.getMeasuredHeight(); Toast.makeText(MainActivity.this, "onglobal--width = " + width + "---height = " + height, Toast.LENGTH_SHORT).show(); } });

备注:以上image是ImageView控件
【Android获取控件的宽和高】ImageView image = (ImageView)findViewById(R.id.image);





    推荐阅读