miércoles, 7 de mayo de 2014

Android: Safe way to get view's width or height

1)
view.getViewTreeObserver().addOnGlobalLayoutListener(
    new OnGlobalLayoutListener() {

     @Override
     public void onGlobalLayout() {

      // Do something...

      // Remove the listener after you've done. Else it will
      // get called multiple times
      removeOnGlobalLayoutListener(image);
     }

     @SuppressWarnings("deprecation")
     @SuppressLint("NewApi")
     private void removeOnGlobalLayoutListener(
       final View view) {

      int currentAPIVersion = android.os.Build.VERSION.SDK_INT;

      if (currentAPIVersion >= android.os.Build.VERSION_CODES.JELLY_BEAN) {
       view.getViewTreeObserver()
         .removeOnGlobalLayoutListener(this);
      } else {
       view.getViewTreeObserver()
         .removeGlobalOnLayoutListener(this);
      }
     }
    });

2)
view.measure(View.MeasureSpec.UNSPECIFIED, View.MeasureSpec.UNSPECIFIED);

int measuredWidth = view.getMeasuredWidth();
int measuredHeight = view.getMeasuredHeight();

No hay comentarios:

Publicar un comentario