第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定

代碼照著敲的 檢查了好幾次 就是所有的按鈕狀態(tài) 包括dialog 都不變化 我再 onTouch 的三個方法里面全部輸出了 log log都正常展示 急!老師能幫我看下嘛

public?class?AudioRecorderButton?extends?Button?{
private?static?final?int?DISTANCE_Y_CANCEL?=?50;
/**?按鈕的三種狀態(tài)?*/
private?static?final?int?STATE_NORMAL?=?1;//?正常狀態(tài)
private?static?final?int?STATE_RECRODING?=?2;//?錄音狀態(tài)
private?static?final?int?STATE_WANT_CANEL?=?3;//?取消狀態(tài)
private?int?mCurSTATE?=?STATE_NORMAL;//?變量?記錄當(dāng)前按鈕的狀態(tài)?默認(rèn)下為正常狀態(tài)
private?boolean?isRecording?=?false;//?如果是已經(jīng)開始錄音
private?DialogManager?mDialogManager;
public?AudioRecorderButton(Context?context,?AttributeSet?attrs)?{
super(context,?attrs);
mDialogManager?=?new?DialogManager(getContext());
setOnLongClickListener(new?OnLongClickListener()?{
@Override
public?boolean?onLongClick(View?v)?{
mDialogManager.showRecordingDialog();
isRecording?=?true;
return?false;
}
});
}
public?AudioRecorderButton(Context?context)?{
this(context,null);
}
/**
*?重寫按鈕Button?的?onTouchEvent方法
*/
@Override
public?boolean?onTouchEvent(MotionEvent?event)?{
????int?action?=?event.getAction();
????int?x?=?(int)?event.getX();
????int?y?=?(int)?event.getY();
switch?(action)?{
?case?MotionEvent.ACTION_DOWN://?按鈕按下
?????Log.e("AudioRecorderButton",?"已經(jīng)按下-------x="+x+"y="+y);
?????changeState(STATE_RECRODING);
?????break;
?case?MotionEvent.ACTION_MOVE://?按鈕移動時
????if?(isRecording)?{
????//?根據(jù)用戶移動的?xy的坐標(biāo)判斷用戶是否想要取消當(dāng)次語音發(fā)送
????Log.e("AudioRecorderButton",?"x="+x+"y="+y);
????if?(wantCancel(x,?y))?{
????changeState(STATE_WANT_CANEL);
????}?else?{
????changeState(STATE_RECRODING);
????}
????}?else?{//?提示錄音時間太短?
????}
????break;
case?MotionEvent.ACTION_UP://?按鈕松開時
????Log.e("AudioRecorderButton",?"已經(jīng)松開-------x="+x+"y="+y);
????if?(mCurSTATE?==?STATE_RECRODING)?{//?是錄音
????mDialogManager.dimissDialog();
????}?else?if?(mCurSTATE?==?STATE_WANT_CANEL)?{//?想取消
????mDialogManager.dimissDialog();
????}
????reset();
break;
}
return?true;
}
/**
*?恢復(fù)狀態(tài)和標(biāo)志位
*/
private?void?reset()?{
isRecording?=?false;
changeState(STATE_NORMAL);
}
private?boolean?wantCancel(int?x,?int?y)?{
if?(x?<?0?||?x?>?this.getWidth())?{//手指滑動已經(jīng)超出按鈕
return?true;
}
if?(y?<?-DISTANCE_Y_CANCEL?||?y?>?DISTANCE_Y_CANCEL?+?getHeight())?{
return?true;
}
return?false;
}
private?void?changeState(int?CURRENT_STATE)?{
if?(CURRENT_STATE?!=?mCurSTATE)?{//?當(dāng)前傳入狀態(tài)不等于當(dāng)前默認(rèn)狀態(tài)
mCurSTATE?=?CURRENT_STATE;
switch?(mCurSTATE)?{
case?STATE_NORMAL:
setBackgroundResource(R.drawable.but_recorder_normal);
setText(R.string.str_voice_normal);
break;
case?STATE_RECRODING:
setBackgroundResource(R.drawable.but_recording);
setText(R.string.str_voice_recording);
if?(isRecording)?{
?mDialogManager.recording();?
}
break;
case?STATE_WANT_CANEL:
setBackgroundResource(R.drawable.but_recording);
setText(R.string.str_voice_want_cancel);
mDialogManager.wantToCancel();
break;}}}}


正在回答

3 回答

onTouchEvent()里面不能直接return true ,需要 return?super.onTouchEvent(event);



1 回復(fù) 有任何疑惑可以回復(fù)我~

好的 謝謝 我試試

0 回復(fù) 有任何疑惑可以回復(fù)我~

把onTouchEvent()的返回值改為super.onTouchEvent(event),再試試

1 回復(fù) 有任何疑惑可以回復(fù)我~
#1

呦丶耍脾氣丶

你的代碼能執(zhí)行到case MSG_AUDIO_PREPARED:條件中么?我和你的比對了,但是基本都一致,你檢查出來問題了么?
2015-06-04 回復(fù) 有任何疑惑可以回復(fù)我~

舉報

0/150
提交
取消
Android-仿微信語音聊天
  • 參與學(xué)習(xí)       43189    人
  • 解答問題       244    個

結(jié)合自定義View和API,Dialog管理等實(shí)現(xiàn)實(shí)現(xiàn)微信語音

進(jìn)入課程

代碼照著敲的 檢查了好幾次 就是所有的按鈕狀態(tài) 包括dialog 都不變化 我再 onTouch 的三個方法里面全部輸出了 log log都正常展示 急!老師能幫我看下嘛

我要回答 關(guān)注問題
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號