Projekt-Anfragen: Tel: 07022/9319004 info@CodeDocu.de Software Entwicklung in C# WPF Asp.Net Core Vba Excel Word SQL-Server EF Linq, UWP Net
#

Android: ein Video transparent erstellen mit VideoView, MediaPlayer und FrameLayout

 

Wie kann man in Android ein Video ein oder ausblenden?

Leider funktioniert die Durchsichtigkeit von .setAlpha(0.5f) nicht in Android VideoView und dem MediaPlayer.

Deshalb muss man einen Trick anwenden.

Man setzt ein FrameLayout als Maske davor und blendet dieses aus.

 

FrameLayout alphaView=findViewById(R.id.alphaView);
alphaView.setAlpha(1-alphaValue);

 

 

By java Code in activity.java

 

package com.example.demo_light;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;

import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.ColorFilter;
import android.graphics.drawable.ColorDrawable;
import android.graphics.drawable.Drawable;
import android.media.MediaPlayer;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.widget.FrameLayout;
import android.widget.SeekBar;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.Toolbar;
import android.widget.VideoView;

public class MainActivity extends AppCompatActivity {
   
MediaPlayer mediaPlayer=null;


   
@Override
   
protected void onCreate(Bundle savedInstanceState) {
       
super.onCreate(savedInstanceState);
        setContentView(
R.layout.activity_main);

       
//--< Hide Toolbar >--
       
if (getSupportActionBar() != null) {
            getSupportActionBar().hide();
        }
       
//--</ Hide Toolbar >--

        //--< Load Video >--
       
VideoView videoView=findViewById(R.id.videoView);
       
Uri video = Uri.parse("android.resource://" + getPackageName() + "/raw/" + R.raw.video01);
       
videoView.setVideoURI(video);
       
videoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
           
@Override
           
public void onPrepared(MediaPlayer mp) {
               
mediaPlayer=mp;
                mp.setLooping(
true);
               
videoView.start();
            }
        });
       
//--</ Load Video >--



        //--< Change Volume by SeekBarLight >--
       
TextView textViewOutputLight =findViewById(R.id.textViewOutputLight );
       
SeekBar seekBarLight=findViewById(R.id.seekBarLight);
       
seekBarLight.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
           
@Override
           
public void onProgressChanged(SeekBar seekBar, int i, boolean b) {
               
//int    alphaValue =(int)(((float)i/100)*255);  //*< API11
               
float alphaValue = (float) i / 100;
               
textViewOutputLight.setText("Light=" + alphaValue + "%");

               
FrameLayout alphaView=findViewById(R.id.alphaView);
               
alphaView.setAlpha(1-alphaValue);
            }

           
@Override
           
public void onStartTrackingTouch(SeekBar seekBar) {
            }
           
@Override
           
public void onStopTrackingTouch(SeekBar seekBar) {
            }
        });
       
//--</ Change Volume by SeekBarLight >--





        //--< Change Volume by SeekBar >--
       
TextView textViewOutputVolume =findViewById(R.id.textViewOutputVolume );
       
SeekBar seekBarVolume=findViewById(R.id.seekBarVolume);
       
seekBarVolume.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
           
@Override
           
public void onProgressChanged(SeekBar seekBar, int i, boolean b) {
               
float volumeValue =(float)i/100;
               
textViewOutputVolume.setText("Volume=" + i + "%");
               
mediaPlayer.setVolume(volumeValue,volumeValue);
            }
           
@Override
           
public void onStartTrackingTouch(SeekBar seekBar) {
            }
           
@Override
           
public void onStopTrackingTouch(SeekBar seekBar) {
            }
        });
       
//--</ Change Volume by SeekBar >--
   
}
}

 

 

 

In the activity_main.xml

You need a VideoView and lay a FrameLayout above it

 


    <
VideoView
       
android:id="@+id/videoView"
       
android:layout_width="wrap_content"
       
android:layout_height="wrap_content"
       
/>

    <
FrameLayout
       
android:id="@+id/alphaView"
       
android:layout_width="fill_parent"
       
android:layout_height="fill_parent"
       
android:alpha="0"
       
android:background="#000000"></FrameLayout>

 

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
   
xmlns:app="http://schemas.android.com/apk/res-auto"
   
xmlns:tools="http://schemas.android.com/tools"
   
android:layout_width="match_parent"
   
android:layout_height="match_parent"
   
tools:context=".MainActivity">


    <
VideoView
       
android:id="@+id/videoView"
       
android:layout_width="wrap_content"
       
android:layout_height="wrap_content"
       
/>

    <
FrameLayout
       
android:id="@+id/alphaView"
       
android:layout_width="fill_parent"
       
android:layout_height="fill_parent"
       
android:alpha="0"
       
android:background="#000000"></FrameLayout>

    <
TextView
       
android:id="@+id/textViewOutputLight"
       
android:layout_width="wrap_content"
       
android:layout_height="wrap_content"
       
android:text="Light=100%"
       
android:height="40sp"
       
android:width="200sp"
       
android:textSize="22sp"
       
android:layout_above="@+id/seekBarLight"
       
/>

    <
SeekBar
       
android:id="@+id/seekBarLight"
       
android:layout_width="match_parent"
       
android:layout_height="50sp"
       
android:progress="100"
       
android:layout_above="@+id/textViewOutputVolume"
        
/>

    <
TextView
       
android:id="@+id/textViewOutputVolume"
       
android:layout_width="wrap_content"
       
android:layout_height="wrap_content"
       
android:text="Volume=100%"
       
android:height="40sp"
       
android:width="200sp"
       
android:textSize="22sp"
       
android:layout_above="@+id/seekBarVolume"
/>

    <
SeekBar
       
android:id="@+id/seekBarVolume"
       
android:layout_width="match_parent"
       
android:layout_height="50sp"
       
android:layout_alignParentBottom="true"
       
android:progress="100"
       
/>



</
RelativeLayout>

 

 

Mobile
»
Android Code: Tabbed Activity mit verschiedenen Fragments
»
Android Example Code : Tabbed Activity with Different Fragments
»
Android Tabbed Activity mit ViewPage2 Adapter
»
Android: ein Video transparent erstellen mit VideoView, MediaPlayer und FrameLayout
»
Android: mit to open an alarm an activity even in locked screen
»
Android: mit einem Alarm eine Activity öffnen
»
Android : einen kleine Musik Media Abspieler erstellen
»
Android: Layout Constraint zu RelativeLayout
»
Android Studio : Button mit Event erstellen
»
Samsung S6 ScreenMirroring ganz einfach

.

Jobs, Projekte, Angebote für Freiberufler, Selbstständig an Info@CodeDocu.de