Как наложить изображение значка поверх существующего представления - PullRequest
1 голос
/ 17 апреля 2011

Это вопрос из двух частей.

У меня есть изображение склада, которое я хотел бы разделить на регионы (A, B, C, D, E & F), где каждая буква представляет собой склад на складе. Если пользователь выбирает хранилище «B», то я хотел бы программно наложить значок на область на изображениях, обозначенных как «B».

Вопрос:

  1. Каков хороший способ разделить изображение на области, которые будут описывать каждую комнату хранения?
  2. Как программно разместить значок над нужным регионом?

Спасибо.

1 Ответ

1 голос
/ 17 декабря 2013

Ответ на 1: Вы можете использовать Framelayout; FrameLayout - это общий механизм наложения вида поверх другого.

Вот пример:

 <?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">
<ImageView  
    android:id="@+id/image"
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:src="@drawable/my_image"/>
<View
    android:id="@+id/overlay"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"/>
</FrameLayout>

Затем в вашем Java-коде вы можете динамически установить прозрачность наложения:

View overlay = (View) findViewById(R.id.overlay);
int opacity = 200; // from 0 to 255
overlay.setBackgroundColor(opacity * 0x1000000); // black with a variable alpha
FrameLayout.LayoutParams params =
    new FrameLayout.LayoutParams(FrameLayout.LayoutParams.FILL_PARENT, 100);
params.gravity = Gravity.BOTTOM;
overlay.setLayoutParams(params);
overlay.invalidate(); // update the view

Смотрите здесь

Вопрос 2. В framelayout вы можете перетаскивать иконки поверх нужного места, перетаскивая их :: Так просто!

Надеюсь, это помогло :: XD

...