introvideo scaleproblems fixed

This commit is contained in:
JG-Cody 2021-07-16 14:35:37 +02:00
parent c6037412e7
commit 737c2fe722
7 changed files with 35 additions and 19 deletions

View File

@ -41,7 +41,7 @@ public class TerminalFragment extends Fragment {
}
return true;
return false;
}
});
terminal_textView = (TextView) root.findViewById(R.id.terminal_textView);
@ -50,7 +50,7 @@ public class TerminalFragment extends Fragment {
terminal = new Terminal();
while (true) {
try {
getActivity().runOnUiThread(new Runnable() {
requireActivity().runOnUiThread(new Runnable() {
@Override
public void run() {

View File

@ -51,18 +51,10 @@ public class IntroFragment extends Fragment {
videoBG.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mediaPlayer) {
float videoRatio = mediaPlayer.getVideoWidth() / (float) mediaPlayer.getVideoHeight();
float screenRatio = videoBG.getWidth() / (float)
videoBG.getHeight();
float scaleX = videoRatio / screenRatio;
if (scaleX >= 1f) {
videoBG.setScaleX(scaleX);
} else {
videoBG.setScaleY(1f / scaleX);
}
setDimension();
mMediaPlayer = mediaPlayer;
// We want our video to play over and over so we set looping to true.
mMediaPlayer.setLooping(true);
mMediaPlayer.setLooping(false);
// We then seek to the current position if it has been set and play the video.
if (mCurrentVideoPosition != 0) {
mMediaPlayer.seekTo(mCurrentVideoPosition);
@ -99,4 +91,30 @@ public class IntroFragment extends Fragment {
mMediaPlayer.release();
mMediaPlayer = null;
}
private void setDimension() {
// Adjust the size of the video
// so it fits on the screen
float videoProportion = getVideoProportion();
int screenWidth = getResources().getDisplayMetrics().widthPixels;
int screenHeight = getResources().getDisplayMetrics().heightPixels;
float screenProportion = (float) screenHeight / (float) screenWidth;
android.view.ViewGroup.LayoutParams lp = videoBG.getLayoutParams();
if (videoProportion < screenProportion) {
lp.height= screenHeight;
lp.width = (int) ((float) screenHeight / videoProportion);
} else {
lp.width = screenWidth;
lp.height = (int) ((float) screenWidth * videoProportion);
}
videoBG.setLayoutParams(lp);
}
// This method gets the proportion of the video that you want to display.
// I already know this ratio since my video is hardcoded, you can get the
// height and width of your video and appropriately generate the proportion
// as :height/width
private float getVideoProportion(){
return 2.22f;
}
}

View File

@ -12,9 +12,7 @@
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.0" />
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -16,7 +16,7 @@
<item
android:id="@+id/nav_terminal"
android:icon="@drawable/code_black_24dp"
android:title="@string/menu_konsole" />
android:title="@string/menu_terminal" />
<item
android:id="@+id/nav_zeitsteuerung"
android:icon="@drawable/schedule_black_24dp"

View File

@ -15,7 +15,7 @@
<fragment
android:id="@+id/nav_terminal"
android:name="de.jg_cody.Teraplex.ui.Terminal.TerminalFragment"
android:label="@string/menu_konsole"
android:label="@string/menu_terminal"
tools:layout="@layout/fragment_terminal" />
<fragment

View File

@ -8,7 +8,7 @@
<string name="login_username">BENUTZERNAME</string>
<string name="login_password">PASSWORT</string>
<string name="menu_home">HOME</string>
<string name="menu_konsole">KONSOLE</string>
<string name="menu_terminal">TERMINAL</string>
<string name="menu_kueche">KÜCHE</string>
<string name="menu_zeitsteuerung">ZEITSTEUERUNG</string>
<string name="menu_schlafzimmer">SCHLAFZIMMER</string>

View File

@ -61,7 +61,7 @@
<string name="cooperation">IN COOPERATION WITH</string>
<string name="menu_home">HOME</string>
<string name="menu_konsole">CONSOLE</string>
<string name="menu_terminal">TERMINAL</string>
<string name="menu_kueche">KITCHEN</string>
<string name="menu_zeitsteuerung">TIME-CONTROL</string>
<string name="menu_schlafzimmer">BEDROOM</string>