Bitmap bitmap=BitmapFactory.decodeResource(getResources(), R.drawable.anguria); Log.v(""+bitmap.getWidth(),""+bitmap.getHeight());Ottengo
04-18 14:40:04.976: V/408(4740): 313408 e 313.
Metto la bitmap in una ImageView.
ImageView imageView =new ImageView(this); Bitmap bitmap=BitmapFactory.decodeResource(getResources(), R.drawable.anguria); Log.v(""+bitmap.getWidth(),""+bitmap.getHeight()); imageView.setImageBitmap(bitmap); mainLayout.addView(imageView);La ImageView mi viene abbastanza grande:
Siamo sicuri che ImageView abbia le stesse dimensioni della Bitmap?
Vediamole...
ImageView imageView =new ImageView(this);
Bitmap bitmap=BitmapFactory.decodeResource(getResources(), R.drawable.anguria);
Log.v(""+bitmap.getWidth(),""+bitmap.getHeight());
imageView.setImageBitmap(bitmap);
Log.v(""+imageView.getWidth(),""+imageView.getHeight());
mainLayout.addView(imageView);
04-18 15:47:26.523: V/408(5881): 313 04-18 15:47:26.524: V/0(5881): 0Così facendo, ottengo come risultato 0 e 0.
Il motivo è che fino a onResume non è stata ancora dispiegata "materialmente" la ImageView, e quindi bisogna overridare l'evento onWindowFocusChanged, a quanto leggo...
Proviamo:
Bitmap bitmap=BitmapFactory.decodeResource(getResources(), R.drawable.anguria); Log.v(""+bitmap.getWidth(),""+bitmap.getHeight()); imageView.setImageBitmap(bitmap); mainLayout.addView(imageView); } @Override public void onWindowFocusChanged(boolean hasFocus){ super.onWindowFocusChanged(hasFocus); Log.v(""+imageView.getWidth(),""+imageView.getHeight()); }
04-18 15:50:18.327: V/408(5974): 313 ..... 04-18 15:50:18.537: V/408(5974): 313Per avere la prova, faccio di meglio:
imageView =new ImageView(this); Bitmap bitmap=BitmapFactory.decodeResource(getResources(), R.drawable.anguria); Log.v("LARGHEZZA DELLA BITMAP",""+bitmap.getWidth()); Log.v("ALTEZZA DELLA BITMAP",""+bitmap.getHeight()); imageView.setImageBitmap(bitmap); mainLayout.addView(imageView); } @Override public void onWindowFocusChanged(boolean hasFocus){ super.onWindowFocusChanged(hasFocus); Log.v("LARGHEZZA DI IMAGEVIEW",""+imageView.getWidth()); Log.v("ALTEZZA DI IMAGEVIEW",""+imageView.getHeight()); }
04-18 15:55:33.902: V/LARGHEZZA DELLA BITMAP(6021): 408 04-18 15:55:33.910: V/ALTEZZA DELLA BITMAP(6021): 313 ..... 04-18 15:55:34.016: V/LARGHEZZA DI IMAGEVIEW(6021): 408 04-18 15:55:34.016: V/ALTEZZA DI IMAGEVIEW(6021): 313Ed è così confermato che le dimensioni della ImageView sono le stesse della bitmap in essa contenuta.
Nessun commento:
Posta un commento