当前位置: 代码迷 >> Android >> 为什么Android布局中VideoView和Button不能共存解决思路
  详细解决方案

为什么Android布局中VideoView和Button不能共存解决思路

热度:23   发布时间:2016-05-01 21:54:29.0
为什么Android布局中VideoView和Button不能共存
今天在一个LayOut中添加了VideoView和一个Button,想通过点击Button改变VideoView的大小
Java code
<?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:layout_gravity="center"    android:orientation="vertical" >        <Button         android:id="@+id/btnchangesize"        android:layout_width="320px"           android:layout_height="wrap_content"        android:text="点击改变分辨率">    </Button>           <VideoView           android:id="@+id/video1"           android:layout_width="320px"           android:layout_height="240px"           android:layout_centerInParent="true" >       </VideoView></LinearLayout>
然后再Acitvity中加载这个layout,可是这个Activity一执行就会报错
Java code
public class TestAct extends Activity {        private static final String LOG_TAG = "VideoPlayTest";        private VideoView videoView1;        private Button btnChangeSize;        public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.testact);        Log.i(LOG_TAG, "******* 开始播放视频 *******");        btnChangeSize = (Button) findViewById(R.id.btnchangesize);        btnChangeSize.setOnClickListener(new View.OnClickListener() {                            @Override            public void onClick(View v) {Log.i(LOG_TAG, "******* 点击事件 *******");            //                videoView1.pause();//                    //                LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(640, 480);//                lp.gravity = Gravity.CENTER;//                videoView1.setLayoutParams(lp);//                    //                videoView1.resume();            }        });                // 找到第二个VideoView//        String MEDIA_LOCATE1 = "/mnt/sdcard/mtv.3g2";//        videoView1 = (VideoView)this.findViewById(R.id.video1);//        videoView1.setVideoPath(MEDIA_LOCATE1);//            //        videoView1.start();                        }}
异常代码
Java code
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.test/com.test.TestAct}:java.lang.ClassCastException: android.widget.VideoView

PS:把Button注释掉也是一样的,请了解的大虾指点一二,不慎感激

------解决方案--------------------
Log结果显示的原因是findViewById得到的View对象经强转成VideoView出错,因为它并不是VideoView对象导致.
你再检查你的代码
  相关解决方案