做完之后搖一搖就閃退。
package?imooc.shake; import?android.content.Context; import?android.content.Intent; import?android.media.MediaPlayer; import?android.os.Bundle; import?android.os.Handler; import?android.os.Vibrator; import?android.support.v7.app.AppCompatActivity; import?android.view.animation.Animation; import?android.view.animation.AnimationUtils; import?android.widget.ImageView; import?android.widget.TextView; public?class?ShakeActivity?extends?AppCompatActivity?implements?ShakeSensor.OnShakeListener?{ ????private?static?final?int?MSG_COUNT_END=0X01;//次數使用結束 ????private?static?final?int?MSG_COUNT_CONTINUE=0X02;//次數沒有使用結束 ????private?ShakeSensor?mShakeSensor; ????private?MediaPlayer?mPlayer;//音樂效果 ????private?Vibrator?mVibrator;//震動效果 ????private?ImageView?mImgHandle;//視圖 ????private?TextView?mTxtCount; ????private?static?int?count=3;//記錄次數 ????private?boolean?isStart;//是否是開始記錄 ????@Override ????protected?void?onCreate(Bundle?savedInstanceState)?{ ????????super.onCreate(savedInstanceState); ????????setContentView(R.layout.activity_shake); ????????mImgHandle=?(ImageView)?this.findViewById(R.id.img_hand); ????????mTxtCount=?(TextView)?this.findViewById(R.id.txt_show_count); ????????mShakeSensor?=?new?ShakeSensor(this); ????????//注冊回調事件 ????????mShakeSensor.setOnShakeListener(this); ????????mShakeSensor.init(); ????????mVibrator=(Vibrator)this.getSystemService(Context.VIBRATOR_SERVICE); ????????//啟動動畫 ????????Animation?animation?=?AnimationUtils.loadAnimation(this,R.anim.main_img_handle); ????????mImgHandle.startAnimation(animation); ????} ????Handler?mHandler?=?new?Handler(){ ????????public?void?handleMessage(android.os.Message?msg){ ????????????if(msg.what==MSG_COUNT_END){ ????????????????//只有震動效果,沒有音效,沒有產品效果 ????????????????startVibrator(); ????????????}else{ ????????????????//震動、音樂效果 ????????????????startAudioWithVibrator(); ????????????????Intent?show?=?new?Intent(ShakeActivity.this,ShowActivity.class); ????????????????startActivity(show); ????????????} ????????}; ????}; ????@Override ????protected?void?onResume()?{ ????????super.onResume(); ????????if(count==0){ ????????????count=0; ????????}else?{ ????????????if(isStart) ????????????count--; ????????} ????????isStart=true; ????????mTxtCount.setText("今天您還可以搖"+count+"次"); ????} ????@Override ????public?void?onShake()?{ ????????if(count==0){ ????????????//次數已經使用完成 ????????????mHandler.sendEmptyMessage(MSG_COUNT_END); ????????}else?{ ????????????//還有次數 ????????????mHandler.sendEmptyMessage(MSG_COUNT_CONTINUE); ????????} ????????//實現操作 //????????Toast?t?=?Toast.makeText(this,?"搖一搖成功",?Toast.LENGTH_SHORT); //????????t.setGravity(Gravity.CENTER,0,0); //????????t.show(); ????????//添加跳轉時ShowActivity進入的動畫 ????????overridePendingTransition(R.anim.main_set_in,0); ????} /* ?*??啟動音樂以及震動 ?*/ ????public?void?startAudioWithVibrator()?{ ????????mPlayer=MediaPlayer.create(this,R.raw.faded); ????????//播放 ????????mPlayer.start(); ????????//震動效果 ????????long?pattern[]={500,300,500,300};//間隔多長時間震動 ????????mVibrator.vibrate(pattern,-1); ????} /* ?*??啟動震動 ?*/ ????public?void?startVibrator(){ ????????//震動效果 ????????long?pattern[]={500,300,500,300};//間隔多長時間震動 ????????mVibrator.vibrate(pattern,-1); ????} }
哪位大神幫忙看一下,我這個代碼哪里寫錯了?
2017-12-02
雖然你肯定解決了
<uses-permission android:name="android.permission.VIBRATE"/>
清單文件中加這句話給權限
2016-10-25
老師的視頻丟失了一段,從視頻中找到一些摳上去了,但還是有一些可能沒寫到?