Domanda

ho aggiornato il mio build per creare contro Android 1.6, e ora i miei bitmap vengono ridimensionato su schermi ad alta densità. Io non voglio che questo comportamento. Ho dato a questo un colpo:

http://blog.tomgibara.com/post/190539066/android- unscaled-bitmap

, ma le immagini sono ancora scalando, cioè a meno che li ho impostato ad un'altezza e larghezza specifica. Se uso wrap_content che vengono scalati verso il basso.

Ho un caricatore di immagini utilizzando la bitmap loader non in scala per creare un drawable in questo modo:

Bitmap bm = UnscaledBitmapLoader.loadFromResource(imageBufferInputStream);
drawable = new BitmapDrawable(bm);

che più tardi assegno a un ImageView in questo modo:

imageView.setImageDrawable( copyBitmapDrawable( (BitmapDrawable) drawable) );
È stato utile?

Soluzione 3

Avvolgere la bitmap con un Drawable è il problema. Il Drawable scala l'Bitmap. Invece di utilizzare un Drawable, assegnare il Bitmap al ImageView direttamente utilizzando imageView.setImageBitmap(Bitmap).

Altri suggerimenti

Al fine di avere un'immagine non in scala quando viene caricato da una risorsa (ad esempio con BitmapFactory.decodeResource) è necessario individuare in res / drawable-nodpi invece del solito drawable, drawable-ldpi e così via.

con

new BitmapDrawable(this.getResources(), bmp); 

anziché

 new BitmapDrawable(bmp);

dovrebbe risolvere il problema.

ImageView.ScaleType . Le preforme CENTER costanti alcun ridimensionamento, quindi credo che questo è quello che stai cercando.

Tra l'altro, si usa pixel o avvallamenti come unità di misura? Utilizzando avvallamenti (indipendenti dalla densità-pixel) è un mezzo di standardizzazione display risoluzioni multiple. Troverete un paio di suggerimenti qui .

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