Страницы

Поиск по вопросам

пятница, 10 января 2020 г.

ImageView и покрывающий его круглый прозрачный градиент

#java #android #android_imageview


Дано:

ImageView, в который загружена круглая .png картинка.

Как программно добавить поверх картинки круглый градиент из drawable.xml ?

При этом сквозь градиент должно быть видно картинку.

UPD:

ImageView я добавляю на экран кодом:

linearLayout.addView(imageView)


При клике на ImageView нужно, чтобы появился прозрачный градиент в этом ImageView
и через определенное время убрался.

По идеи можно прописать все ImageView(их 50, кол-во не меняется) в layout'е и обернуть
ImageView в какой нибудь lаyout, добавив в него еще одну ImageView с градиентом, которую
я буду делать визибл при нажатии.

На сколько плохо такое решение будет ?

Код как я добавляю картинки:

LinearLayout layout = (LinearLayout) findViewById(R.id.ll);
for (int i = 0; i < 50; i++) {
    ImageView imageView = new ImageView(this);
    imageView.setId(i);
    imageView.setPadding(0, 0, 8, 0);
    imageView.setImageBitmap(BitmapFactory.decodeResource(
                getResources(), R.drawable.pic1));
    imageView.setScaleType(ImageView.ScaleType.CENTER_INSIDE);
    layout.addView(imageView);
}

    


Ответы

Ответ 1



Согласно en-SO делается это с помощью android:type="radial" так: Прозрачность при этом делается проставлением значений альфа-канала в цвете. Это первые две цифры. При этом, чтобы градиент был сверху изображения можно Использовать selector картинку поместить в фон, а градиент как изображение ImageView Или наложить поверх ImageView ещё один ImageView, в коий и поместить градиент любым способом. Извратиться, перевести оба изображения в BitMap и наложить попиксельно)

Комментариев нет:

Отправить комментарий