今天在一个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>
- 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对象导致.
你再检查你的代码