0
我想VideoView
的頂部(覆蓋)上顯示TextView
,它不會發生。我有一個FrameLayout
內的兩個元素,在VideoView下面有TextView位置。根據我的理解,這應該放在首位。TextView不覆蓋在FrameLayout裏面的VideoView
我嘗試了以編程方式添加TextView並刪除VideoView的其他功能的各種方法,例如onTouchListener()。
有沒有人有任何建議如何解決這個問題或重疊視圖的解釋可以幫助我解決這個問題?任何幫助將不勝感激。下面我已經發布代碼:
activity_splash.xml
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.androidtitan.hotspots.Activity.SplashActivity">
<VideoView
android:id="@+id/splashVideo"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<TextView android:id="@+id/splashTitle"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center_horizontal"
android:layout_marginTop="25dp"
android:text="placeholder text"
android:textSize="60dp"
android:textStyle="bold"
android:textColor="@android:color/black"/>
SplashActivity.java
package com.androidtitan.hotspots.Activity;
import android.app.Activity;
import android.content.Intent;
import android.media.MediaPlayer;
import android.net.Uri;
import android.os.Bundle;
import android.util.DisplayMetrics;
import android.util.Log;
import android.view.MotionEvent;
import android.view.View;
import android.widget.FrameLayout;
import android.widget.TextView;
import android.widget.VideoView;
import com.androidtitan.hotspots.R;
public class SplashActivity extends Activity {
private static final String TAG = "hotspots";
TextView titleTextView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_splash);
titleTextView = (TextView) findViewById(R.id.splashTitle);
try{
splashScreen();
} catch (Exception e) {
//todo: we could display a picture here as an alternative
Log.e(TAG, String.valueOf(e));
}
//this returns
if(titleTextView.isShown()) {
Log.e(TAG, "titleTextView.isShown()");
}
else {
Log.e(TAG, "NOT SHOWN");
}
}
@Override
public boolean onTouchEvent(MotionEvent ev) {
return false;
}
public void splashScreen() {
VideoView videoHolder = new VideoView(this);
setContentView(videoHolder);
Uri video = Uri.parse("android.resource://" + getPackageName() + "/"
+ R.raw.splash);
videoHolder.setVideoURI(video);
videoHolder.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
public void onCompletion(MediaPlayer mp) {
jumpMain(); //jump to the next Activity
}
});
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
videoHolder.setLayoutParams(new FrameLayout.LayoutParams(metrics.widthPixels, metrics.heightPixels));
videoHolder.start();
videoHolder.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
((VideoView) v).stopPlayback();
jumpMain();
return true;
}
});
}
private synchronized void jumpMain() {
Intent intent = new Intent(SplashActivity.this, ChampionActivity.class);
startActivity(intent);
finish();
}
}
This worked 100%Thank you! – androidtitan