Sto tentando di implementare un ImageView con possibile contenere sia immagini orizzontali che verticali. Queste immagini devono adattarsi alla larghezza della vista di immagini (se orizzontale) o all'altezza (se verticale), ma in ogni caso devono essere allineate alla parte superiore della vista senza margine o riempimento.Android ImageView ScaleType * FIT_TOP *
Quello che vorrei ottenere è qualcosa come android:scaleType="fitStart"
ma centrato nel caso di immagini ritratto o allineato in alto nel caso di immagini di paesaggio.
Aggiunto:
Ora sto utilizzando un codice così brutta, che sembra funzionare, ma non sono sicuro che è la soluzione migliore:
<com.custom.layout.MyImageView
android:id="@+id/detail_view_image"
android:src="@drawable/logo"
android:background="#fff"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_centerHorizontal="true"
android:cropToPadding="false"
android:adjustViewBounds="false"
/>
e poi nella mia classe, che si estende ImageView i fare:
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
int imgWidth = getDrawable().getIntrinsicWidth();
int imgHeight = getDrawable().getIntrinsicHeight();
if(imgWidth>imgHeight)
setScaleType(ScaleType.FIT_START);
else
setScaleType(ScaleType.FIT_CENTER);
int width = measureWidth(widthMeasureSpec);
int height = measureHeight(heightMeasureSpec);
setMeasuredDimension(width, height);
}
Sto cercando di fare qualcosa di simile, hai mai trovato una soluzione per questo? –
finora non ho avuto fortuna, ho finito col usare il codice che ho postato sopra ... – 0m4r
ok, grazie per il codice! –