Добавьте цвет переднего плана и центральную иконку в кликабельный вид

Я пытаюсь добиться чего-то подобного! Альтернатива флажку Как мне этого добиться?

Я попытался создать рисуемый объект с центральным значком и прозрачным фоном, но значок масштабируется, чтобы заполнить вид, когда рисуемый объект установлен на передний план вида.

Также нет поддержки метода setForground для уровня API ниже 23.

Я намерен добиться этого динамически при нажатии на представление. Пожалуйста помоги!!!

Попробуйте использовать гравитацию с растровое изображение XML, чтобы рисование не заполнило представление.

Cheticamp 18.02.2019 14:57
0
1
168
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Вы должны добавить прозрачный вид, который соответствует родительским размерам над вашим видом, и добавить вид изображения в его центр. Вы можете настроить уровень прозрачности, чтобы получить желаемый эффект.

Ответ принят как подходящий

для достижения этого представления используйте относительное расположение, как показано ниже.

<?xml version = "1.0" encoding = "utf-8"?>
<LinearLayout xmlns:android = "http://schemas.android.com/apk/res/android"
android:layout_width = "match_parent"
android:layout_height = "match_parent"
android:gravity = "center"
android:orientation = "vertical">


<RelativeLayout
    android:layout_width = "90dp"
    android:layout_height = "120dp">

    <ImageView
         android:id = "@+id/image_view"
        android:layout_width = "match_parent"
        android:layout_height = "match_parent"
        android:src = "@drawable/demo_img_4" />

    <LinearLayout
        android:id = "@+id/transp_ll"
        android:layout_width = "match_parent"
        android:layout_height = "match_parent"
        android:background = "#30000000"
        android:gravity = "center">

        <ImageView
             android:id = "@+id/delete_btn"
            android:layout_width = "wrap_content"
            android:layout_height = "wrap_content"
            android:src = "@drawable/ic_delete_black_24dp" />
    </LinearLayout>
</RelativeLayout>
</LinearLayout>

MainActivity.java

  @Override
 protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    //initialize views
    setContentView(R.layout.activity_main);
    image_view = findViewById(R.id.image_view);
    delete_btn = findViewById(R.id.delete_btn);
    transp_ll = findViewById(R.id.transp_ll);

    //set transparent layout visibility gone
    transp_ll.setVisibility(View.GONE);

    //set click listener
    image_view.setOnClickListener(this);
    delete_btn.setOnClickListener(this);
}

@Override
public void onClick(View view) {
    switch (view.getId()) {
        case R.id.delete_btn:
            //write here delete button click functionality..
            transp_ll.setVisibility(View.GONE);
            break;
        case R.id.image_view:
            transp_ll.setVisibility(View.VISIBLE);
            break;
    }
}

Это кажется хорошим решением. но проверьте, что в xml нет идентификатора transp_ll, image_view and delete_btn. Пожалуйста, обновите решение

Urchboy 10.03.2019 21:59

Другие вопросы по теме

Похожие вопросы

Как работать с результатом org.tensorflow.lite.Interpreter.runForMultipleInputsOutputs()
Есть ли какая-либо функция в манифесте или где-то, когда я устанавливаю свое приложение, приложение, которое оно появится на устройстве, например, в приложении браузера?
Можем ли мы получить доступ к элементам в веб-просмотре, заполнить блоки и заставить их автоматически нажимать кнопку отправки?
Задержка ответа Firebase при обработке нескольких местоположений
Заблокировано Play Protect [ Выпущен apk]
Обработка случаев нулевого ответа сервера
Ошибка при добавлении Google Places SDK для Android[Причина: повторяющаяся запись: com/bumptech/glide/GeneratedAppGlideModule.class]
Почему нельзя показать изображение в ImageView, которое выбирает изображение из хранилища мобильного симулятора?
Действие уведомления переднего плана не отправляет широковещательную рассылку
Зачем писать собственный логгер в Android