Sto codificando Android e ho una visione d'immagine. Voglio impostare questo tipo di scalimetro su topcrop. Potrei trovare il centercrop nelle opzioni, ma non è la mia richiesta. Come lo faccio?Come impostare il tipo di scalabilità di imageview su topCrop
risposta
Android ImageView personalizzato per il ridimensionamento del ritaglio superiore del drawable contenuto.
import android.content.Context;
import android.graphics.Matrix;
import android.widget.ImageView;
/**
* ImageView to display top-crop scale of an image view.
*
* @author Chris Arriola
*/
public class TopCropImageView extends ImageView {
public TopCropImageView(Context context) {
super(context);
setScaleType(ScaleType.MATRIX);
}
@Override
protected boolean setFrame(int l, int t, int r, int b) {
final Matrix matrix = getImageMatrix();
float scale;
final int viewWidth = getWidth() - getPaddingLeft() - getPaddingRight();
final int viewHeight = getHeight() - getPaddingTop() - getPaddingBottom();
final int drawableWidth = getDrawable().getIntrinsicWidth();
final int drawableHeight = getDrawable().getIntrinsicHeight();
if (drawableWidth * viewHeight > drawableHeight * viewWidth) {
scale = (float) viewHeight/(float) drawableHeight;
} else {
scale = (float) viewWidth/(float) drawableWidth;
}
matrix.setScale(scale, scale);
setImageMatrix(matrix);
return super.setFrame(l, t, r, b);
}
}
Io non credo di avere bisogno di un personalizzato di vista per questo. Tutto quello che devi fare è impostare scaleType
su matrix
e impostare una matrice personalizzata su ImageView
.
consultare: https://stackoverflow.com/a/38049348/4747587
Volevo solo una soluzione temporanea senza lavoro in eccesso. Prova questo
<ImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:scaleType="centerCrop"
android:scrollY="-100dp"
android:id="@+id/poster"
/>
scrolly tira la vostra immagine su o giù. Provalo con diversi dp e troverai la taglia giusta.
Mentre questo raggiunge l'operazione in corso, non funziona con risoluzioni dello schermo diverse o con dimensioni di visualizzazione padre. Probabilmente non è raccomandato per la produzione, poiché otterrai risultati imprevisti in natura. :) – DoctorD
Sì, è vero, l'ho imparato nel modo più duro. Si comporta in modo diverso su vari schermi. – rahulxyz
- 1. Animazione scalabilità immagine ImageView interrompe immagine
- 2. Android, ImageView su ImageView
- 3. Come impostare il tipo di contenuto su HttpURLConnection?
- 4. Come impostare il tipo di grafico su torta
- 5. Video AndroidVisualizza come ridimensionare il tipo di bilancia ImageView fitXY?
- 6. Scalabilità scalabilità di app Silverlight WP7
- 7. Come impostare la risorsa Immagine su ImageView usando DataBinding
- 8. Come impostare la scalabilità automatica RabbitMQ Cluster AWS
- 9. Come ottenere il rettangolo del Drawable di ImageView su Android?
- 10. Android: disegno di una tela su ImageView
- 11. Impostare il tipo di sequenza di puzzle
- 12. Scalabilità di modelli variadici
- 13. Consigli di scalabilità CEDET
- 14. Come selezionare ItemBackground su Imageview?
- 15. Come impostare concretamente il tipo astratto con il tipo bound?
- 16. Scalabilità di un'app Meteor
- 17. Scalabilità di DotNetNuke
- 18. Come disegnare linee su ImageView su Android?
- 19. usando poi, Come impostare il tipo di cella come numero
- 20. Come impostare correttamente il tipo di flusso audio MediaPlayer
- 21. Come impostare la gravità (oi margini) di ImageView utilizzando il codice?
- 22. Come impostare il tipo di dati della cella
- 23. Come dare un effetto posterize su imageview?
- 24. Impossibile utilizzare il metodo setForeground su ImageView
- 25. come impostare il tipo di carattere per la webview
- 26. ImageView circolare su Xamarin
- 27. Come impostare imageView in cerchio come immagineContatti in Swift correttamente?
- 28. Modifica di ImageView su bianco e nero
- 29. Rapida scalabilità automatica di AWS
- 30. altezza set di ImageView come matchparent programmazione
funziona. grazie –
come implementare questo. ho fatto una domanda su questo http://stackoverflow.com/questions/32359213/trying-to-use-custom-imageview-topcrop-in-android-but-the-the-app-stops. –
@Jay funziona benissimo. Sto facendo calcoli a matrice nel metodo onLayout(), che viene chiamato anche a rotazione, dove setFrame no. – box