Перекрывающиеся виды В Android


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

edit:

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

<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>

edit:

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

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

этой

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

6 ответов:

Android обрабатывает прозрачность между видами и чертежами (включая изображения PNG) изначально, поэтому сценарий, который вы описываете (частично прозрачный ImageView перед a 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 должна быть прозрачной.

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

кроме того, взгляните на FrameLayout, вот как приложение галереи камеры реализует наложение кнопок масштабирования.

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

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

простой способ arround заключается в том, чтобы поместить-40dp margin на кнопку верхнего imageview

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