Перекрытие просмотров в 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, за исключением того, что он добавлен позже в макет.