Koduję Androida i mam obraz. Chcę ustawić scaletype tego do topcrop. Mogę znaleźć centercrop w opcjach, ale to nie moja prośba. Jak mam zrobić?Jak ustawić obrazek z podglądem do topCrop
Odpowiedz
Niestandardowy obraz podglądu systemu Android do skalowania w górę przyciętego szuflady.
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);
}
}
Nie wierzę trzeba widoku niestandardowego obrazu dla tego produktu. Wszystko, co musisz zrobić, to ustawić scaleType
na matrix
i ustawić niestandardową matrycę na ImageView
.
Chciałem tylko tymczasowe rozwiązanie bez nadmiaru pracy. Wypróbuj ten obrazek za pomocą scrollY, przeciągając obraz w górę lub w dół. Wypróbuj go z innymi dp, a znajdziesz odpowiedni rozmiar.
Podczas gdy to osiąga zadanie pod ręką, nie działa dla różnych rozdzielczości ekranu lub rozmiarów widoku rodzica. Prawdopodobnie nie jest zalecane do produkcji, ponieważ uzyskasz niespodziewane wyniki w środowisku naturalnym. :) – DoctorD
Tak, to prawda, nauczyłem się tego na własnej skórze. Zachowuje się inaczej na różnych ekranach. – rahulxyz
- 1. Przesyłanie wielu zdjęć z podglądem
- 2. jak wyświetlić obrazek ładowania tarczy z knockout.js
- 3. Obrazek do tablicy bajtów z adresu URL
- 4. Obrazek wyciek pamięci z C#
- 5. Jak korzystać z Firebug z podglądem wydruku w Firefoksie?
- 6. SurfaceView z podglądem kamery nie jest zniszczony
- 7. Obrazek do NumPy-tablicy: JPG vs. PNG
- 8. Wklej obrazek do tekstu sformatowanego (np. Gmail)
- 9. Obrazek odświeżania siły PHP
- 10. jquery.width return 0 na obrazek
- 11. Jak mogę wyrównać obrazek i nagłówek h1?
- 12. Jak połączyć obrazek i docelowo nowe okno
- 13. Obrazek aplikacji Android z adresu URL
- 14. Jak uzyskać prostokątny obrazek z regionówprops (Image, 'BoundingBox') w Matlab?
- 15. Niestandardowe powiadomienie ze zdalnym podglądem na Androidzie
- 16. Używanie 3D Touch z podglądem i popisem scenki
- 17. Jak dodać subskrybcję do widoku WWW, aby przeglądać podglądy wraz z podglądem strony internetowej?
- 18. Java: ImageIcon porównaniu różnicy Obrazek
- 19. Wysyłaj wyrażenie do strony internetowej Zwróć dynamiczny wynik (obrazek)
- 20. Jak ustawić/uzyskać pandas.DataFrame do/z redis?
- 21. Jak ustawić zdjęcie do ImageView korzystając filepath w android
- 22. Dopasuj duży obrazek do małego obrazu z jakością tak dobrą jak oryginalny obraz?
- 23. Jak wstawić obrazek do programu Excel w określonej pozycji komórkowy z VBA
- 24. Wstaw obrazek w komentarzu do kodu przez Emacsa
- 25. Znalezienie mały obrazek w większym jeden
- 26. JQuery Mobile Pinch Powiększ obrazek Tylko
- 27. OpenCV narysować obrazek na innym obrazku
- 28. Jak ustawić obramowanie do tabeli
- 29. Jak wyśrodkować obrazek w pionie w tym RelativeLayout
- 30. Jak ustawić kompozycję do ProgressDialog?
to działa. dzięki –
jak to zaimplementować. zadałem pytanie dotyczące tego http://stackoverflow.com/questions/32359213/trying-to-use-custom-imageview-topcrop-in-android-but-the-tappapp-stop. –
@Ja działa dobrze. Tworzę obliczenia macierzy w metodzie onLayout(), która jest wywoływana również przy obrocie, gdzie nie jest ustawiona funkcja setFrame. – box