@Override public boolean onTouch(View v, MotionEvent event) { switch (event.getAction()) { case MotionEvent.ACTION_DOWN: if (!NetStateUtils.checkSdCard()) { ShowToast("发送语音需要sdcard支持!"); return false; } try { v.setPressed(true); layout_record.setVisibility(View.VISIBLE); tv_voice_tips.setText(getString(R.string.chat_voice_cancel_tips)); // 开始录音 recordManager.startRecording(targetId); } catch (Exception e) { } return true; case MotionEvent.ACTION_MOVE: { if (event.getY() < 0) { tv_voice_tips.setText(getString(R.string.chat_voice_cancel_tips)); tv_voice_tips.setTextColor(Color.RED); } else { tv_voice_tips.setText(getString(R.string.chat_voice_up_tips)); tv_voice_tips.setTextColor(Color.WHITE); } return true; } case MotionEvent.ACTION_UP: v.setPressed(false); layout_record.setVisibility(View.INVISIBLE); try { if (event.getY() < 0) { // 放弃录音 recordManager.cancelRecording(); BmobLog.i("voice", "放弃发送语音"); } else { int recordTime = recordManager.stopRecording(); if (recordTime > 1) { // 发送语音文件 BmobLog.i("voice", "发送语音"); sendVoiceMessage(recordManager.getRecordFilePath(targetId), recordTime); } else { // 录音时间过短,则提示录音过短的提示 layout_record.setVisibility(View.GONE); showShortToast().show(); } } } catch (Exception e) { } return true; default: return false; } }
@Override public void onReceiveLocation(BDLocation location) { // map view 销毁后不在处理新接收的位置 if (location == null || mMapView == null) return; if (lastLocation != null) { if (lastLocation.getLatitude() == location.getLatitude() && lastLocation.getLongitude() == location.getLongitude()) { BmobLog.i("获取坐标相同"); // 若两次请求获取到的地理位置坐标是相同的,则不再定位 mLocClient.stop(); return; } } lastLocation = location; // TODO 测试上传位置! CustomApplication.getInstance().mLastLocation = new BmobGeoPoint(location.getLongitude(), location.getLatitude()); updateUserLocation(); BmobLog.i( "lontitude = " + location.getLongitude() + ",latitude = " + location.getLatitude() + ",地址 = " + lastLocation.getAddrStr()); // MyLocationData locData = new MyLocationData.Builder() // .accuracy(location.getRadius()) // // 此处设置开发者获取到的方向信息,顺时针0-360 // .direction(100).latitude(location.getLatitude()) // .longitude(location.getLongitude()).build(); // mBaiduMap.setMyLocationData(locData); // LatLng ll = new LatLng(location.getLatitude(), // location.getLongitude()); // String address = location.getAddrStr(); // if (address != null && !address.equals("")) { // lastLocation.setAddrStr(address); // } else { // // 反Geo搜索 // mSearch.reverseGeoCode(new ReverseGeoCodeOption().location(ll)); // } // TODO 显示在地图上 // MapStatusUpdate u = MapStatusUpdateFactory.newLatLng(ll); // mBaiduMap.animateMapStatus(u); // 设置按钮可点击 mHeadLayout.getRightImageButton().setEnabled(true); }
@Override public void onGetReverseGeoCodeResult(ReverseGeoCodeResult result) { if (result == null || result.error != SearchResult.ERRORNO.NO_ERROR) { showToast("抱歉,未能找到结果"); return; } BmobLog.i("反编码得到的地址:" + result.getAddress()); lastLocation.setAddrStr(result.getAddress()); }
public void showLog(String msg) { BmobLog.i(msg); }
public static void ShowLog(String msg) { BmobLog.i(msg); }