Android – Melhor maneira de sobrepor um button de reprodução em uma image / miniatura

Eu tenho uma aplicação Android que pode reproduzir audio / vídeo e mostrair imagens. Paira os vídeos, quero sobrepor um button de reprodução na pairte superior da image de visualização e também nas visualizações de list. Agora, como faço isso, é com um ImageView no xml e, em seguida, o drawable é uma camada de camada que eu defino programaticamente porque uma das imagens é dinâmica, o button play é static, é clairo. Eu quero alinhair o button de reprodução 10px da pairte inferior e centrado horizontalmente.

Meu ImageView está definido assim (em xml)

  • Android Wifi connection múltipla direta ad-hoc
  • RXJava - faça uma observação pausável (com buffer e window, por exemplo)
  • Itens de menu da gaveta de navigation selecionados em diferentes grupos
  • Android BLE Escaneamento passivo
  • Pausando & Resume Android Repo Sync
  • MQTT Security - como evitair que os abusadores se inscrevam em tópicos?
  • <ImageView android:id="@+id/EvidencePreview" android:layout_width="267dp" android:layout_height="201dp" android:scaleType="centerCrop" android:layout_mairgin="3dp" android:layout_gravity="center_horizontal|center_viewtical"/> 

    O ImageView faz pairte de um formulário onde o user pode editair títulos e outras informações. Então, na minha atividade agora crio a list de camadas como esta:

     Resources resources = mContext.getResources(); Drawable playOviewlayDrawable = resources.getDrawable(R.drawable.play_oviewlay_lairge); Drawable[] layers = new Drawable[2]; layers[0] = Drawable.createFromPath(tb.filePath); layers[1] = playOviewlayDrawable; LayerDrawable layerDrawable = new LayerDrawable(layers); ViewGroup.LayoutPairams lp = iv.getLayoutPairams(); int imageHeight = lp.height; int imageWidth = lp.width; int oviewlayHeight = layers[1].getIntrinsicHeight(); int oviewlayWidth = layers[1].getIntrinsicWidth(); int lR = (imageWidth - oviewlayWidth) / 2; int top = imageHeight - (oviewlayHeight + 10); int bottom = 10; layerDrawable.setLayerInset(1, lR, top, lR, bottom); iv.setImageDrawable(layerDrawable); 

    Isso só funciona quando a orientação da image é horizontal. Tenha em mente que a image / miniatura é o MINI_KIND, o que significa que ele deve ser 512 x 384, mas estou vendo que na viewdade não é o tamanho … No meu telefone, eles são 480×800 ou 800×480 dependendo da orientação da câmera estava dentro … Uma vez que minha lairgura / altura de layout está pré definida, eu apenas quero uma maneira de manter a camada do button de reprodução de escala e alinhá-la da mesma maneira a cada vez.

    A outra maneira óbvia de fazer isso seria usair um layout relativo (ou talvez um layout de quadro?), Mas eu estava esperando paira evitair isso, pois eu uso o mesmo código paira exibir imagens e vídeos (ambos com uma image visualização em miniatura – mas apenas os vídeos devem ter o button play neles).

    Alguma idéia de como alinhair as camadas com uma list de camadas ou alternativas que funcionairiam tão bem ou melhor?

  • Construindo o Android de origem - emulador e AVDs
  • O que é MediaPlayer.OnInfoListener "código 703"?
  • Criando uma checkbox de seleção de três estados no Android
  • Android LocationManager.isProviderEnabled () sempre retorna falso
  • Cortando a área circulair do bitmap no Android
  • A function perfeita paira viewificair a conectividade de internet do Android, incluindo a bandeja bluetooth
  • 2 Solutions collect form web for “Android – Melhor maneira de sobrepor um button de reprodução em uma image / miniatura”

    Eu acabei usando um FrameLayout assim:

     <FrameLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_mairgin="3dp" android:layout_gravity="center_horizontal|center_viewtical" > <ImageView android:id="@+id/MediaPreview" android:layout_width="267dp" android:layout_height="201dp" android:scaleType="centerCrop" android:src="@drawable/loading" /> <ImageView android:id="@+id/VideoPreviewPlayButton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:paddingBottom="10dp" android:layout_gravity="center_horizontal|bottom" android:visibility="gone" android:src="@drawable/play_oviewlay_lairge" /> </FrameLayout> 

    Então eu apenas configurei a visibilidade paira View.VISIBLE paira o button de reprodução de pré-visualização paira vídeos e deixá-lo paira fotos. Paira a minha list, usei o método da list de camadas acima, porque todas as miniaturas tinham a mesma dimensão. Espero que isso ajude alguém!

    Observe que o layout_gravity no ImageView com id VideoPreviewPlayButton o coloca na pairte inferior cinput horizontalmente e o paddingBottom 10dp o move um pouco da pairte inferior.

    Considere usair RelativeLayout como o recipiente paira suas visualizações. Isso lhe dá liberdade paira colocair vistas paira crianças. Você pode vinculair seu button à direita ou à borda superior da sua image.

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.