Перекрытие просмотров в Android

Возможно ли иметь перекрывающиеся представления в Android? Я хотел бы иметь ImageView с прозрачным png спереди и другим видом в фоновом режиме.

изменить:

Это то, что у меня есть на данный момент, проблема в том, что изображение в изображенииView не прозрачно, части, которые должны быть прозрачными, просто черные.

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/gallerylayout"
>
<Gallery android:id="@+id/overview"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    />

 <ImageView android:id="@+id/navigmaske"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:src="@drawable/navigmask"
    /> 

</RelativeLayout>

изменить:

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

<item name="android:background">#FF000000</item>

к этому

<item name="android:background">#00000000</item>

Ответ 1

Android обрабатывает прозрачность между представлениями и чертежами (включая изображения PNG), поэтому сценарий, который вы описываете (частично прозрачный ImageView перед Gallery), безусловно, возможен.

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

<RelativeLayout 
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:id="@+id/gallerylayout"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent">
  <Gallery
    android:id="@+id/overview"
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content"
  />
  <ImageView
    android:id="@+id/navigmaske"
    android:background="#0000"      
    android:src="@drawable/navigmask"
    android:scaleType="fitXY"
    android:layout_alignTop="@id/overview"
    android:layout_alignBottom="@id/overview"
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content"
  />
</RelativeLayout>

Обратите внимание, что я изменил родительский RelativeLayout на высоту и ширину fill_parent, как обычно, что вы хотите для основной деятельности. Затем я выровнял верх и низ ImageView в верхней и нижней частях Gallery, чтобы убедиться, что он центрирован перед ним.

Я также четко задал фон ImageView для прозрачности.

Как и для самого изображения, если вы помещаете PNG файл куда-нибудь для просмотра, я могу использовать его в своем проекте и посмотреть, не отвечает ли он.

Ответ 2

Также обратите внимание на FrameLayout, что приложение приложения Gallery Gallery реализует наложение кнопок Zoom.

Ответ 3

Если вы хотите добавить пользовательский экран Overlay в Layout, вы можете создать пользовательский линейный макет и получить контроль над рисованием и ключевыми событиями. Вы можете использовать мой учебник - Overlay на Android Layout - http://prasanta-paul.blogspot.com/2010/08/overlay-on-android-layout.html

Ответ 4

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

Ответ 5

Простым способом arround является установка поля -40dp в нижней части верхнего изображения.

Ответ 6

Да, это возможно. Однако задача состоит в том, чтобы правильно выполнить их компоновку. Самый простой способ сделать это - получить AbsoluteLayout, а затем разместить два изображения там, где вы хотите. Вам не нужно делать ничего особенного для прозрачного png, за исключением того, что он добавлен позже в макет.