Sobrepostas Visualizações em Android
-
12-09-2019 - |
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 ??p>
<item name="android:background">#00000000</item>
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.