Domanda

Questa è una parte della mia attività:

private ImageView mImageView;
private int resource;

@Override
protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  resource = getIntent().getIntExtra("res", -1);

  Matrix initMatrix = new Matrix();

  mImageView = new ImageView(getApplicationContext());
  mImageView.setScaleType( ImageView.ScaleType.MATRIX );
  mImageView.setImageMatrix( initMatrix );
  mImageView.setBackgroundColor(0);
  mImageView.setImageResource(resource);
}
.

Provo a visualizzare un'immagine all'interno di imageview utilizzando una matrice come tipo di scala (Voglio aggiungere multitouch in seguito).Ma prima dell'utente inizia l'interazione, voglio che l'immagine sia centrata e adattarsi all'interno dell'immaginazione. Ho già trovato risposte riguardanti come risolverlo, ma c'è un problema per me: Per creare un'immagine centrata usando la matrice ho bisogno di conoscere la sua larghezza e altezza.C'è un modo per ottenere la dimensione dell'immagine quando tutto ciò che hai è Int Resource ?

È stato utile?

Soluzione

Usa Bitmapfactory.decoderesource per ottenere un oggetto bitmap della risorsa, quindi dalla bitmap è possibile recuperare facilmente la larghezza / altezza dell'immagine con getheight e GetWidth

Anche non dimenticare di riciclare La tua bitmap

Modifica:

In questo modo otterrai una bitmap null come uscita, ma le bitmapfactory.options saranno impostate con l'altezza con l'altezza per la bitmap.Quindi, in questo caso, non è necessario riciclare la bitmap

BitmapFactory.Options dimensions = new BitmapFactory.Options(); 
dimensions.inJustDecodeBounds = true;
Bitmap mBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.bitmap, dimensions);
int height = dimensions.outHeight;
int width =  dimensions.outWidth;
.

Altri suggerimenti

Per chiunque non abbia letto il commento di Dmon.Il codice da fare è simile a questo:

final Options opt = new BitmapFactory.Options();
opt.inJustDecodeBounds = true;
BitmapFactory.decodeResource(getResources(), R.drawable.your_photo, opt);

opt.outHeight; // height of resource
opt.outWidth; // width of resource
.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top