Zmień rozmiar obrazu na pełną szerokość i stałą wysokość za pomocą Picasso
Mam LinearLayout pionowy, gdzie jednym z elementów jest ImageView
załadowany za pomocą Picassa. Muszę zwiększyć szerokość obrazu do pełnej szerokości urządzenia i wyświetlić środkową część obrazu przyciętego o stałą wysokość (150dp). Obecnie mam następujący kod:
Picasso.with(getActivity())
.load(imageUrl)
.placeholder(R.drawable.placeholder)
.error(R.drawable.error)
.resize(screenWidth, imageHeight)
.centerInside()
.into(imageView);
Jakie wartości należy wpisać do screenWidth
i imageHeight
(=150dp)?
164
2 answers
Szukasz:
.fit().centerCrop()
Co to znaczy:
-
fit
- poczekaj, ażImageView
zostanie zmierzony i zmień rozmiar obrazu, aby dokładnie pasował do jego rozmiaru. -
centerCrop
- skaluj obraz z zachowaniem proporcji, aż wypełni rozmiar. Przytnij górną i dolną lub lewą i prawą, aby dokładnie dopasować rozmiar.
491
Author: Jake Wharton,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-12-29 10:22:54
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-12-29 10:22:54
W niektórych przypadkach Fit() jest bezużyteczne. Zanim musisz poczekać na zakończenie pomiaru szerokości i wysokości. Możesz więc użyć globallayoutlistener. na przykład;
imageView.getViewTreeObserver().addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
public void onGlobalLayout() {
Picasso.with(getActivity())
.load(imageUrl)
.placeholder(R.drawable.placeholder)
.error(R.drawable.error)
.resize(screenWidth, imageHeight)
.fit
.centerInside()
.into(imageView);
imageView.getViewTreeObserver().removeOnGlobalLayoutListener(this);
}
});
1
Author: Umut ADALI,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-07-05 04:05:45
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-07-05 04:05:45