我正在编写一个Phonegap(3.2)应用程序,我使用HTML5画布,将其全屏显示,整个应用程序UI都在此画布上.
使用三星Galaxy S4(Android 4.3)测试应用程序,该应用程序的屏幕分辨率只有360X640而不是1080X1920,就像我想要的那样.
为了使应用程序使用最大可能的屏幕分辨率,需要做些什么?
我添加了屏幕截图1)//看起来不错但分辨率不好
windowWidth = window.innerWidth; windowHeight = window.innerHeight;

2)//占据屏幕的一小部分,休息是白色的
windowWidth = window.outerWidth; windowHeight = window.outerHeight;

3)//只有一小部分图片可见,就像图像处于1080X1920但屏幕"太小"一样.
windowWidth = screen.width; windowHeight = screen.height;

这是完整的代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>PhoneGapTesting</title>
<script type="text/javascript" src="js/jquery.min.js"></script>
<script type="text/javascript" charset="utf-8" src="cordova.js"></script>
<!-- -->
<script type="text/javascript">
var windowWidth;
var windowHeight;
var canvasMain;
var contextMain;
var backgroundImage;
$(document).ready(function() {
windowWidth = window.innerWidth;
windowHeight = window.innerHeight;
//windowWidth = window.outerWidth; // Only 'window.innerWidth' + 'window.innerHeight' look OK but not max resolution
//windowHeight …Run Code Online (Sandbox Code Playgroud) 我在网上找到了一个简单的抽屉示例.它在PC上工作正常.
当我使用Phonegap 2.7,在我的Galaxy S4(4.2.2)上,使用Android 2.2或4.2.2,对于该项目,它根本不绘制任何东西.
我究竟做错了什么 ?
<html lang="en">
<head>
<meta charset="utf-8" />
<title>Desktops and Tablets</title>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script type="text/javascript" charset="utf-8" src="cordova-2.7.0.js"></script>
<script type="text/javascript">
$(document).ready(function () {
initialize();
});
// works out the X, Y position of the click inside the canvas from the X, Y position on the page
function getPosition(mouseEvent, sigCanvas) {
var x, y;
if (mouseEvent.pageX != undefined && mouseEvent.pageY != undefined) {
x = mouseEvent.pageX;
y = mouseEvent.pageY;
} else {
x = mouseEvent.clientX + …Run Code Online (Sandbox Code Playgroud) 我正在使用MediaPlayer在TextureView中播放视频.TextureView具有固定大小,视频大小不同.它播放视频,但问题是视频的一部分在外面,视频没有按比例缩小以适应TextureView.
黑色矩形+照片(视频)是TextureView.红色矩形是实际的视频,我画了它来显示问题.
因此它只显示视频的一部分而不显示其余部分.
我希望所有视频都可见并保持其原始比例.
谢谢.

// The class implements SurfaceTextureListener
// Set TextureView to MediaPlayer
m_TextureView.setSurfaceTextureListener(this);
@Override
public void onSurfaceTextureAvailable(SurfaceTexture surfaceTexture, int width, int height) {
m_MediaPlayer = new MediaPlayer();
m_MediaPlayer.setSurface(new Surface(surfaceTexture));
}
// Play video
m_MediaPlayer.reset();
m_MediaPlayer.setDataSource(videoFilePath);
m_MediaPlayer.prepare();
m_MediaPlayer.start();
Run Code Online (Sandbox Code Playgroud) 我正在考虑开始使用Xamarin,是否有可能采用全屏WPF项目并在iOS和Android上使用它?
使用TextureView 内的MediaPlayer 来播放视频,它可以工作。
当一个视频结束并且应该播放另一个视频时,我会调整 TextureView 的大小以适应即将播放的视频的宽高比(例如 - 从 3:4 到 9:16 等等......)。
问题是,第一个视频结束后,它的最后一帧仍然显示,然后调整了TextureView的大小,第一个视频的最后一帧仍然保留了一瞬间,但现在宽高比很差,第二个视频播放得很好。
显示(尺寸 X 尺寸)矩形的视频图像:
图片1:视频1,(3:4):

Image2:视频 1,这里我们位于 2 个视频之间,视频 1 的最后一帧,调整大小后现在位于 (9:16),但矩形看起来很糟糕。下图瞬间显示:

图片 3:视频 2,(9:16),播放良好,但在显示图片 2 片刻后:

所使用的代码没有什么特别的,以下是其中的一些部分:
// To init the TextureView and MediaPlayer:
public void onSurfaceTextureAvailable(SurfaceTexture surfaceTexture, int width, int height) {
m_MediaPlayer = new MediaPlayer();
m_Surface = new Surface(surfaceTexture);
m_MediaPlayer.setSurface(m_Surface);
}
m_TextureView.setSurfaceTextureListener(this);
// To Resize:
LayoutParams layoutParams = new FrameLayout.LayoutParams(newTVWidth, newTVHeight);
layoutParams.gravity = Gravity.CENTER;
m_TextureView.setLayoutParams(layoutParams);
// To play:
m_MediaPlayer.reset();
m_MediaPlayer.setDataSource(videoFilePath);
m_MediaPlayer.prepare();
// <--- …Run Code Online (Sandbox Code Playgroud)