Pergunta

É possível ter vistas sobrepostas em Android? Eu gostaria de ter um ImageView com um png transparente na frente e outra vista no plano de fundo.

edit:

Isto é o que eu tenho no momento, o problema é que a imagem no imageView não é transparente, as peças que devem ser transparentes são apenas preto.

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

Eu tenho que trabalhar, era um arquivo de tema de outro programador na equipe. Apenas mudou este

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

a esta

<item name="android:background">#00000000</item>
Foi útil?

Solução

alças Android transparência em pontos de vista e drawables (incluindo imagens PNG) nativamente, então o cenário que você descrever (a ImageView parcialmente transparente na frente de um Gallery) é certamente possível.

Se você está tendo problemas que podem estar relacionadas tanto à disposição ou a sua imagem. Eu replicado o layout que você descrever e alcançado com êxito o efeito que você está depois. Aqui está o layout exato que eu usei.

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

Note que eu mudei o RelativeLayout pai para uma altura e largura de fill_parent como é geralmente o que você quer para uma atividade principal. Então eu alinhados parte superior e inferior do ImageView a parte superior e inferior do Gallery para garantir que ele é centrado na frente dele.

Eu também definir explicitamente o fundo do ImageView para ser transparente.

Como para o próprio drawable imagem, se você colocar a algum lugar arquivo PNG para mim a olhar para que eu possa usá-lo em meu projeto e ver se é responsável.

Outras dicas

Além disso, dê uma olhada FrameLayout, é assim que a câmera aplicação Galeria implementa a sobreposição Botões de zoom.

Se você quiser adicionar você tela personalizada Overlay no Layout, você pode criar um layout Linear personalizado e obter o controle de desenho e eventos-chave. Pode meu Tutorial Overlay no Android Layout http://prasanta-paul.blogspot.com/2010 /08/overlay-on-android-layout.html

Galeria Visível muda visibilidade, que é como você começa a galeria sobre outro ponto de vista sobreposição. o aplicativo Início amostra tem alguns bons exemplos desta técnica.

A maneira mais simples ao redor é colocar margem -40dp no buttom do topo ImageView

Sim, isso é possível. O desafio, no entanto, é fazer seu layout corretamente. A maneira mais fácil de fazer isso seria ter um AbsoluteLayout e em seguida, colocar as duas imagens onde quer que eles sejam. Você não precisa fazer nada especial para o png transparente, exceto o ter adicionado mais tarde para o layout.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top