У меня есть вид Recycler и вид, содержащий n количество изображений url. Изображения url имеют разное разрешение. Я использую загрузчик изображений Picasso для загрузки изображений и установки RoundedCornerTransofrmation() с фиксированным радиусом. Но разные изображения устанавливаются с разным радиусом.Как установить уникальный радиус для Picasso RoundedCornerTransofrmation()
ответ
Я нашел решение установить фиксированный радиус для различных снимков с разрешением в Пикассо roundedCornerTransformation()
Внедрение пользовательского класса с помощью инструментов com.squareup.picasso.Transformation
и изменять способ преобразования, как показано ниже, как
@Override общественного Bitmap преобразования (конечного источник растрового изображения) {
//Get the Image Width Form incoming image
int radius = source.getWidth();
//Set the percentage value for radius
radius = (radius*10)/100;
final Paint paint = new Paint();
paint.setAntiAlias(true);
paint.setShader(new BitmapShader(source, Shader.TileMode.CLAMP, Shader.TileMode.CLAMP));
Bitmap output = Bitmap.createBitmap(source.getWidth(), source.getHeight(), Config.ARGB_8888);
Canvas canvas = new Canvas(output);
canvas.drawRoundRect(new RectF(margin, margin, source.getWidth() - margin, source.getHeight() - margin), radius, radius, paint);
if (source != output) {
source.recycle();
}
return output;
}
На основании процентного значения, можно задать радиус кривых изображений как фиксированный.
Спасибо.
вы можете добавить этот класс в пакете:
import android.graphics.Bitmap;
import android.graphics.Bitmap.Config;
import android.graphics.BitmapShader;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.RectF;
import android.graphics.Shader;
// enables hardware accelerated rounded corners
// original idea here : http://www.curious-creature.org/2012/12/11/android-recipe-1-image-with-rounded-corners/
public class RoundedTransformation implements com.squareup.picasso.Transformation {
private final int radius;
private final int margin; // dp
// radius is corner radii in dp
// margin is the board in dp
public RoundedTransformation(final int radius, final int margin) {
this.radius = radius;
this.margin = margin;
}
@Override
public Bitmap transform(final Bitmap source) {
final Paint paint = new Paint();
paint.setAntiAlias(true);
paint.setShader(new BitmapShader(source, Shader.TileMode.CLAMP, Shader.TileMode.CLAMP));
Bitmap output = Bitmap.createBitmap(source.getWidth(), source.getHeight(), Config.ARGB_8888);
Canvas canvas = new Canvas(output);
canvas.drawRoundRect(new RectF(margin, margin, source.getWidth() - margin, source.getHeight() - margin), radius, radius, paint);
if (source != output) {
source.recycle();
}
return output;
}
@Override
public String key() {
return "rounded";
}
вы можете использовать выше класс, как это:
Picasso.with(c).load(s[0]).placeholder(R.drawable.placeholder).transform(new RoundedTransformation(40,4)).error(c.getResources().getDrawable(R.drawable.placeholder)).into(holder.im);
Спасибо за ваш ответ, и я сделал то же самое. Но как мы можем установить переменный радиус изображения с низким разрешением и изображение с высоким разрешением динамически. Моя проблема заключается в том, что кривая изображения увеличивается для изображений с низким разрешением и уменьшается для изображений с высоким разрешением. Можно ли установить радиус на основе разрешения изображения динамически ?. – Nithinjith
@ Нитьджит, радиус визуализируется одинаково для изображений с низким и высоким разрешением, невозможно отобразить другой радиус для изображений с низким и высоким разрешением. –
- 1. Как установить шаблон Picasso scaleType?
- 2. Как установить радиус угла для пользовательской ячейки
- 3. как установить радиус границы для IE8
- 4. Как установить радиус для нижних углов только
- 5. Как установить граничный радиус для текстового поля
- 6. Как установить радиус для CLLocationManager в IOS
- 7. Как установить радиус MPAndroidChart PieChart?
- 8. JavaScript: установить радиус границы
- 9. Programatically установить радиус квадратов
- 10. Как установить уникальный ключ для модели?
- 11. Установить содержимое изображенияПросмотреть как обои (Picasso)
- 12. Как установить радиус угла ячеек в UITableViewStyleGrouped?
- 13. Как установить изображение с помощью библиотеки Picasso?
- 14. Как установить объект C1 на входной радиус?
- 15. Как установить уникальный вывод sql?
- 16. Swift - как установить угловой радиус ImageView
- 17. Как установить плавный граничный радиус более 50%
- 18. Как программно установить угловой радиус границы MenuItem
- 19. Угловой радиус для MPMoviePlayerController
- 20. Как установить минимальный радиус для пакета Circle Pack в D3JS?
- 21. Как установить радиус границы для google map infowindow
- 22. Как установить радиус для кластеризации карт на картах android
- 23. WPF - Установить уникальный идентификатор для холста
- 24. Угловой радиус для навигационной панели
- 25. Установить фоновый ресурс с помощью Picasso
- 26. GWT UiBinder установить уникальный идентификатор
- 27. Установить как уникальный пару полей в MySQL
- 28. Установить радиус точки выделения на флоте
- 29. установить определенный радиус угла на VBox
- 30. Установить максимальную ширину для загрузки изображений с помощью Picasso
Я имею в виду изображения с низким разрешением, радиус увеличивается и его видимый округлый образ. Но в изображениях с высоким разрешением его рабочий штраф – Nithinjith