Estou querendo criar sobreposições de ajuda como as que você vê quando o ICS é carregado pela primeira vez ou em aplicativos como ES File Explorer ou Apex Launcher (há mais, mas não consigo pensar neles agora). Este é apenas um layout relativo com uma visualização posicionada sobre a outra? Não consegui encontrar nenhum código de amostra para fazer uma coisa dessas. Alguém sabe como isso é feito ou tem alguma ideia?
ViewGroup
para a camada de "marcas de coach" poderia lidar com isso, e há bibliotecas (por exemplo,ShowcaseView
) que oferecem implementações enlatadas desse padrão."Coach mark" é "Help overlay" no UX talk :-)
coach_mark.xml é o seu layout de marca de coach
coach_mark_master_view é o id da visão superior (raiz) em coach_mark.xml
Adicionando amostra de coach_mark.xml (a esta excelente solução fornecida por Oded Breiner), então é fácil para o ppl copiar e colar para ver o exemplo de trabalho rapidamente.
Amostra de coach_mark.xml aqui, altere o -> drawable / coach_marks para sua imagem:
coach_mark.xml
E, opcionalmente, use este tema para remover o preenchimento:
fonte
A dialog is a small window that prompts [...]. A dialog does not fill the screen and is normally used for modal events [...].
,. Se eu usar esse código, minha visualização principal será compactada em uma pequena parte da tela. Se eu definirandroid:layout_width="640dp" android:layout_height="480dp"
(ou seja, os valores reais da tela com a qual estou testando), ele funcionará corretamente. (claro que esta não é uma solução viável)new Dialog(getContext(), R.style.WalkthroughTheme);
Você pode fazer isso muito rapidamente. Você adiciona, por exemplo, um LinearLayout onde você coloca uma imagem com alfa que corresponde às suas informações de ajuda e o que você deseja desenhar como uma sobreposição. No xml de sua atividade, você coloca este layout em um RelativeLayout após o layout de sua atividade com a visibilidade Gone. Quando você deseja desenhar as informações de ajuda, você só precisa definir essa visibilidade como visível.
Espero, estou claro, se você tiver alguma dúvida, terei o prazer de respondê-la.
fonte
Veja minha outra resposta como mostrar programaticamente um layout de sobreposição no topo da atividade atual. O layout.xml da atividade não precisa saber nada sobre a capa de sobreposição. Você pode colocar sobreposição semitransparente, cobrir apenas uma parte da tela, uma ou mais textview e botões nela ... Como sobrepor um botão programamicamente?
Meu objetivo era que as atividades principais não soubessem de nenhuma capa de sobreposição, as sobreposições vêm e vão, muitas sobreposições diferentes, ainda capazes de usar arquivos de texto overlay1.xml como modelo, e o conteúdo deve ser atualizado programaticamente. Eu faço praticamente o que CommonsWare nos disse que meu post mostra o código do programa real para começar.
isenção de responsabilidade: OPs "Obrigado por sua contribuição. É assim que imaginei que fosse feito. Devo dar crédito à resposta abaixo" o comentário não significa minha resposta, mas a resposta do CommonsWare. Stackoverflow mudou os pedidos de postagem.
fonte