是否可以创建比屏幕更大的视图?
我需要一个宽度大于设备屏幕的视图.我在旋转动画中使用此视图.在旋转期间,在动画视图之前不在屏幕上的部件将变得可见.
有没有办法用android框架实现这个效果?
更新
我试图设置我的父布局比屏幕大得多,它正在工作.这会使某些事情有点不舒服,但它可以工作.现在的下一个问题是我的布局仍然从屏幕的左侧开始.我想不出一种方法可以让布局扩展到屏幕的左侧和右侧.
我想知道我是否可以通过全屏视频播放视频?
我经常搜索并尝试了很多方法,例如:
在清单中应用主题:
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
Run Code Online (Sandbox Code Playgroud)
但这并不会强制视频全屏显示.
申请活动本身:
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
Run Code Online (Sandbox Code Playgroud)
也不会强制视频全屏显示.
强制视频全屏显示的唯一方法是:
<VideoView android:id="@+id/myvideoview"
android:layout_width="fill_parent"
android:layout_alignParentRight="true"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_alignParentBottom="true"
android:layout_height="fill_parent">
</VideoView>
Run Code Online (Sandbox Code Playgroud)
这样它就会产生全屏视频,但它会延伸视频本身(拉长视频),
我没有将这个不正确的解决方案应用到我的视频中,所以有没有办法在不延长视频的情况下进行操作?
视频课程:
public class Video extends Activity {
private VideoView myvid;
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.main);
myvid = (VideoView) findViewById(R.id.myvideoview);
myvid.setVideoURI(Uri.parse("android.resource://" + getPackageName()
+"/"+R.raw.video_1));
myvid.setMediaController(new MediaController(this));
myvid.requestFocus();
myvid.start();
}
}
Run Code Online (Sandbox Code Playgroud)
main.xml中:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<VideoView
android:id="@+id/myvideoview"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud) 我正在VideoView以肖像模式播放视频(开启)(不是在全屏幕上),当我改为
横向模式视频停止.
当我将其更改为横向时,视频将全屏显示并继续播放.
有什么建议吗?
是否有可能获得对videoView正在使用的mediaPlayer实例的引用,最好是在它的ctor内?如果是这样,怎么样?
由于videoView没有mediaPlayer那么多的监听器,我希望能够访问mediaPlayer以获得额外的控制和更好的事件处理.
我尝试拉伸视频以填充视频.目标是创建在设备中看起来像第一张照片的视图(就像它在布局预览中看起来一样).
这个问题的大多数答案都是指这个链接.
我尝试了这个,但我仍然没有填写视频视图.
这是我的布局代码:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="@drawable/search_gren_screen">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<Button
android:id="@+id/go_back"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center"
android:layout_weight="1"
android:onClick="onclick"
android:text="Try again" />
<Button
android:id="@+id/back_to_pick_song"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="Select another song"
android:onClick="onclick" />
<Button
android:id="@+id/btn_continue"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_weight="1"
android:onClick="onclick"
android:text="Amazing, continue!" />
</LinearLayout>
<FrameLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<VideoView
android:id="@+id/videoView1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:layout_gravity="center" />
</FrameLayout>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
在这里,您可以预览我声明的布局:

但是,设备上的结果是不同的:

在我的程序中我试图在全屏播放视频但没有播放视频的宽高比,
在Android默认播放器中,当你按下它时它左上角有一个按钮,它将视频转换为全视图,而不会保留宽高比的视频失真:
如下图所示:

我尝试使用以下代码获取全屏视频:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<VideoView android:id="@+id/myvideoview"
android:layout_width="fill_parent"
android:layout_alignParentRight="true"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_alignParentBottom="true"
android:layout_height="fill_parent">
</VideoView>
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)
上面的代码导致全屏视频但不保持Aspest Ratio
请任何机构建议我如何获得全屏视频没有中断宽高比.
我的视频存储在App资源文件夹的原始文件夹中.
请提供完整的工作代码.
我在这里和谷歌搜索了很多,但我找不到我的目标,
另一篇文章在stackoverflow中找到了相同的问题但在此链接中没有正确的答案:
我使用videoview在我的应用程序中显示我的视频如下:
public class Video extends Activity {
private VideoView videoview;
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.main);
videoview = (VideoView) findViewById(R.id.count_videoview);
videoview.setVideoURI(Uri.parse("android.resource://" + getPackageName()
+"/"+R.raw.first_video));
videoview.setMediaController(new MediaController(this));
videoview.requestFocus();
videoview.start();
}
}
Run Code Online (Sandbox Code Playgroud)
提前致谢 .
我有一个尺寸的视频,无论屏幕大小如何,我都希望它始终显示全尺寸。同时,我想保持该视频的纵横比,这样它就不会拉伸,我会造成不好的外观。
我可以像这样完成拉伸效果,但视频看起来很糟糕:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<VideoView android:id="@+id/videoViewRelative"
android:layout_alignParentTop="true"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
</VideoView>
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)
在我的这种情况下,向用户显示整个视频并不重要,所以我需要像 ImageView 那样做的事情:
android:scaleType="centerCrop"
Run Code Online (Sandbox Code Playgroud)
有什么作物替代品VideoView吗?谢谢 :)