Android studio相关设置及实现存在于工程目录中的视频播放

一:相关设置
1:主题设置
File-->Settings-->Appearance &Behavior-->Appearance-->THeme
2:Java源码的颜色、字体设置
字体:File-->Settings-->Editor-->Colors&Fonts-->Font
 注意:修改之前先Save as保存原来的,然后才可以改成你想要的字体。
源码颜色:File-->Settings-->Editor-->Colors&Fonts-->Java-->在底下的代码中选择相应的代码-->在右上双击Foreground改变颜色
3:如果不想要白色的背景,可以这样修改:
File-->Settings-->Editor-->Colors&Fonts-->General-->Save as -->双击Background(右上)后边的框即可改变颜色
二:实现存在于工程目录中的视频播放(思路将按照我的项目实际过程来展开)
1:在Android 中播放视频的方式有两种: 

*第一种方式是使用MediaPlayer 结合SurfaceView 来播放,通过MediaPlayer来控制视频的播放、暂停、进度等; 

通过SurfaceView 来显示视频内容; 
优点:灵活性高,可以进行自定义; 
缺点:难度比较大; 

*第二种方式是使用VideoView 来播放,这个类其实也是继承了SurfaceView 类,并且实现了MediaController
MediaPlayerController 这个用于控制媒体播放的接口,另外在VideoView上还有一个用于对媒体播放进行控制 
的面板,包括快进、快退、播放、暂停按钮以及一个进度条; 
优点:比较简单,可以直接进行使用; 
缺点:灵活性不高; 
2、下面介绍VideoView的使用方法:
视频路径设置:
1 video.setVideoURI(Uri.parse("android.resource://com.example.zhaowanlxx.xinxin/" + R.raw.cc_1));
2 video.start();
媒体控制面版常用方法:MediaController: 
* hide(); 隐藏MediaController; 
* show(); 显示MediaController; 
* show(int timeout); 设置MediaController显示的时间,以毫秒计算,如果设置为0则一直到调用hide()时隐藏;
三:步骤
1:首先建立一个android studio工程
2:在res下面建立一个raw文件夹,将视频放进去。  
3:然后编码实现:源代码参考:
seevideo.java:
 2 import java.io.File;
 3 import android.app.Activity;
 4 import android.content.Intent;
 5 import android.media.MediaPlayer;
 6 import android.media.MediaPlayer.OnCompletionListener;
 7 import android.net.Uri;
 8 import android.os.Bundle;
 9 import android.widget.MediaController;
10 import android.widget.RelativeLayout;
11 import android.widget.Toast;
12 import android.widget.VideoView;
13 public class seevideo extends Activity{
14 
15     private VideoView video;
16 
17     /** Called when the activity is firstcreated. */
18     @Override
19     public void onCreate(Bundle savedInstanceState) {
20         super.onCreate(savedInstanceState);
21         setContentView(R.layout.video);
22        
23         video=(VideoView) findViewById(R.id.video);
24         MediaController mc=new MediaController(seevideo.this);       // 创建一个MediaController对象
25         video.setMediaController(mc);       // 将VideoView与MediaController关联起来
26         video.setVideoURI(Uri.parse("android.resource://com.example.zhaowanlxx.xinxin/" + R.raw.cc_1));
27         video.requestFocus();       // 设置VideoView获取焦点
28            
29         try {
30                video.start();      // 播放视频
31             }catch(Exception e) {
32                 e.printStackTrace();
33             }
34 
35             // 设置VideoView的Completion事件监听器
36             video.setOnCompletionListener(new OnCompletionListener() {
37                 @Override
38                 public void onCompletion(MediaPlayer mp) {
39                     Toast.makeText(seevideo.this, "视频播放完毕!", Toast.LENGTH_SHORT).show();
40                     finish();
41                 }
42             });
43 
44 
45     }
46 
47 
48 }
video.xml:
 1 <?xml version="1.0" encoding="utf-8"?>
 2 <RelativeLayout  xmlns:android="http://schemas.android.com/apk/res/android"
 3 
 4 
 5     android:layout_width="match_parent"
 6     android:layout_height="match_parent"
 7     android:orientation="vertical" >
 8 
 9     <VideoView
10         android:id="@+id/video"
11         android:layout_width="match_parent"
12         android:layout_height="match_parent"
13         android:layout_gravity="center" />
14 
15 </RelativeLayout>

 

4:然后你会发现很多问题:
(1)想让视频全屏:
在Activity的onCreate方法中的setContentView(myview)调用之前添加下面代码
1 requestWindowFeature(Window.FEATURE_NO_TITLE);//隐藏标题
2 getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
3 WindowManager.LayoutParams.FLAG_FULLSCREEN);//设置全屏
(2)想横屏观看:
注:竖屏为:SCREEN_ORIENTATION_PORTRAIT
     横屏为:SCREEN_ORIENTATION_LANDSCAPE
1 @Override
2 protected void onResume() {
3  /* 设置为横屏  */
4  if(getRequestedOrientation()!=ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE){
5   setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
6  }
7  super.onResume();
8 }
或者:在配置文件AndroidManifest.xml中对Activity节点添加android:screenOrientation属性(landscape是横向,portrait是纵向)
1  android:launchMode="singleTask" 
2 android:screenOrientation="portrait">
***关于Android中Activity的横竖屏切换问题可以通过AndroidManifest.xml文件中的Activity来配置:
 
 1 android:screenOrientation=["unspecified" | "user" | "behind" |
 2           "landscape" | "portrait" | 
 3           "sensor" | "nonsensor"]
 4 screenOrientation 用来指定Activity的在设备上显示的方向,每个值代表如下含义:
 5 "unspecified"    默认值 由系统来判断显示方向.判定的策略是和设备相关的,所以不同的设备会有不同的显示方向.
 6 "landscape"    横屏显示(宽比高要长)
 7 "portrait"    竖屏显示(高比宽要长)
 8 "user"    用户当前首选的方向
 9 "behind"    和该Activity下面的那个Activity的方向一致(在Activity堆栈中的)
10 "sensor"    有物理的感应器来决定。如果用户旋转设备这屏幕会横竖屏切换。
11 "nosensor"    忽略物理感应器,这样就不会随着用户旋转设备而更改了 ( "unspecified"设置除外 )。
(3)不加任何旋转屏幕的处理代码的时候,旋转屏幕将会导致系统把当前activity关闭。
解决:
如果只是简单的界面调整,我们可以阻止此问题的发生,屏幕旋转而自己调整屏幕的元素重构。
 首先我们需要修改AndroidManifest.xml文件:
 在activity中添加:
1 <activity>
2       android:configChanges="orientation|keyboard"
3 </activity>
这样是让程序能够响应旋转屏幕的事件。
然后重写onConfigurationChanged方法:
1 @Override
2 public void onConfigurationChanged(Configuration newConfig) {
3 // TODO Auto-generated method stub
4 super.onConfigurationChanged(newConfig);
5 Log.v(" == onConfigurationChanged");
6 processLayout();
7 }

 

 
 
posted @ 2015-08-20 11:23  若兮_ruoxi  阅读(6641)  评论(0编辑  收藏  举报