package com.codewind.taximeter.activity;
import android.animation.Animator;
import android.animation.AnimatorInflater;
import android.app.AlertDialog;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.view.KeyEvent;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.ZoomControls;
import com.baidu.location.BDLocation;
import com.baidu.location.BDLocationListener;
import com.baidu.location.LocationClient;
import com.baidu.location.LocationClientOption;
import com.baidu.mapapi.map.BaiduMap;
import com.baidu.mapapi.map.MapStatus;
import com.baidu.mapapi.map.MapStatusUpdateFactory;
import com.baidu.mapapi.map.MapView;
import com.baidu.mapapi.map.MyLocationConfiguration;
import com.baidu.mapapi.map.MyLocationData;
import com.baidu.mapapi.model.LatLng;
import com.codewind.taximeter.R;
import com.codewind.taximeter.service.WorkingService;
import com.codewind.taximeter.util.Utils;
import com.zaaach.citypicker.CityPicker;
import com.zaaach.citypicker.adapter.OnPickListener;
import com.zaaach.citypicker.model.City;
import com.zaaach.citypicker.model.LocateState;
import com.zaaach.citypicker.model.LocatedCity;
import org.androidannotations.annotations.AfterViews;
import org.androidannotations.annotations.Click;
import org.androidannotations.annotations.EActivity;
import org.androidannotations.annotations.ViewById;
@EActivity(R.layout.activity_main)
public class MainActivity extends BaseActivity implements SensorEventListener {
/**欢迎页*/
@ViewById(R.id.splash_img)
ImageView splash_img;//欢迎页图片
private final int DISMISS_SPLASH = 0;//消失标识
Handler handler = new Handler() {
public void handleMessage(Message msg) {
switch (msg.what) {
case DISMISS_SPLASH:
Animator animator = AnimatorInflater.loadAnimator(MainActivity.this, R.animator.splash);
animator.setTarget(splash_img);
animator.start();
break;
}
}
};
/**Top*/
@ViewById(R.id.layout_main_city)
LinearLayout layout_city;//城市选择
@ViewById(R.id.text_main_city)
TextView text_city;//城市选择
@ViewById(R.id.text_main_set)
TextView text_set;//设置按钮
/**行驶中数据显示*/
@ViewById(R.id.layout_main_working)
LinearLayout layout_working;//数据显示layout
@ViewById(R.id.text_main_distance)
static TextView text_distance;//行驶距离
@ViewById(R.id.text_main_time)
static TextView text_time;//行驶时间
@ViewById(R.id.text_main_price)
static TextView text_price;//费用计算
@ViewById(R.id.btn_main_working)
Button btn_working;//开始结束按钮
private boolean isWorking = false;
private boolean isServiceLive = false;//数据刷新服务是否存活
/**地图*/
@ViewById(R.id.mapview_main)
MapView mapView;//地图视图
private BaiduMap baiduMap;//百度地图
private float mCurrentZoom = 18f;//默认地图缩放比例值
private MapStatus.Builder builder;//地图状态
/**定位*/
private LocationClient mLocClient;//定位客户端
public MyLocationListenner myListener = new MyLocationListenner();//定位监听器
private SensorManager mSensorManager;//传感器管理服务
private MyLocationData locData;//定位数据
private double mCurrentLat = 0.0;//当前经度
private double mCurrentLon = 0.0;//当前纬度
private int mCurrentDirection = 0;//当前方向
boolean isFirstLoc = true; // 是否首次定位
/**退出时间*/
private long exitTime = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.i("MainActivity-LIVE","onCreate");
// isServiceLive = Utils.isServiceWork(this, "com.codewind.taximeter.service.WorkingService");
// if(!isServiceLive){
// beginService();
// }
}
@AfterViews
void initView(){
handler.sendEmptyMessageDelayed(DISMISS_SPLASH, 3000);
mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);// 获取传感器管理服务
//不显示百度地图logo
View child = mapView.getChildAt(1);
if (child != null && (child instanceof ImageView || child instanceof ZoomControls)) {
child.setVisibility(View.INVISIBLE);
}
// 不显示地图上比例尺
mapView.showScaleControl(false);
// 不显示地图缩放控件(按钮控制栏)
mapView.showZoomControls(false);
baiduMap = mapView.getMap();
//开启定位图层
baiduMap.setMyLocationEnabled(true);
baiduMap.setMyLocationConfiguration(new MyLocationConfiguration(
com.baidu.mapapi.map.MyLocationConfiguration.LocationMode.FOLLOWING, true, null));
/**添加地图缩放状态变化监听,当手动放大或缩小地图时,拿到缩放后的比例,然后获取到下次定位,给地图重新设置缩放比例,否则地图会重新回到默认的mCurrentZoom缩放比例*/
baiduMap.setOnMapStatusChangeListener(new BaiduMap.OnMapStatusChangeListener() {
@Override
public void onMapStatusChangeStart(MapStatus arg0) {
// TODO Auto-generated method stub
}
@Override
public void onMapStatusChangeFinish(MapStatus arg0) {
mCurrentZoom = arg0.zoom;
}
@Override
public void onMapStatusChange(MapStatus arg0) {
// TODO Auto-generated method stub
}
});
// 定位初始化
mLocClient = new LocationClient(this);
mLocClient.registerLocationListener(myListener);
LocationClientOption option = new LocationClientOption();
// option.setLocationMode(LocationClientOption.LocationMode.Device_Sensors);//只用gps定位,需要在室外定位。
option.setOpenGps(true); // 打开gps
option.setCoorType("bd09ll"); // 设置坐标类型
option.setScanSpan(2000);
mLocClient.setLocOption(option);
mLocClient.start();
}
/**点击选择城市*/
@Click(R.id.layout_main_city)
void click_city(){
CityPicker.from(MainActivity.this)
.enableAnimation(false)
.setAnimationStyle(R.style.CustomAnim)
.setLocatedCity(null)
.setHotCities(null)
.setOnPickListener(new OnPickListener() {
@Override
public void onPick(int position, City data) {
text_city.setText(data.getName()+"市");
}
@Override
public void onCancel() {
Toast.makeText(getApplicationContext(), "取消选择", Toast.LENGTH_SHORT).show();
}
@Override
public void onLocate() {
//开始定位,这里模拟一下定位
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
CityPicker.from(MainActivity.this).locateComplete(new LocatedCity("深圳", "广东", "101280601"), LocateState.SUCCESS);
}
}, 3000);
}
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
基于Java开发出租车计价器app+源代码+注释说明-课程大作业 - 不懂运行,下载完可以私聊问,可远程教学 该资源内项目源码是个人的毕设,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! <项目介绍> 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 --------
资源推荐
资源详情
资源评论
收起资源包目录
基于Java开发出租车计价器app+源代码+注释说明-课程大作业 (133个子文件)
gradlew.bat 2KB
china_cities_v2.db 120KB
.gitignore 118B
.gitignore 7B
.gitignore 7B
build.gradle 2KB
build.gradle 952B
build.gradle 855B
settings.gradle 30B
gradlew 5KB
baidumapapi_map_v4_3_1.jar 1.62MB
locSDK_6.13.jar 248KB
gson-2.2.1.jar 185KB
baidumapapi_base_v4_3_1.jar 107KB
gradle-wrapper.jar 52KB
baidumapapi_util_v4_3_1.jar 40KB
MainActivity.java 15KB
CityPickerDialogFragment.java 11KB
WorkingService.java 10KB
CityListAdapter.java 10KB
Utils.java 10KB
CustomDialog.java 7KB
SectionItemDecoration.java 6KB
SideIndexBar.java 6KB
DBManager.java 5KB
RouteDetailActivity.java 4KB
CityPicker.java 4KB
GridListAdapter.java 3KB
ScreenUtil.java 3KB
MyOrientationListener.java 2KB
RoutePoint.java 2KB
City.java 2KB
WelcomeActivity.java 2KB
SelectDialog.java 2KB
DividerItemDecoration.java 2KB
SetActivity.java 1KB
BaiDuSDKReceiver.java 1KB
MyApplication.java 929B
DBHelper.java 900B
GridItemDecoration.java 845B
ExampleInstrumentedTest.java 751B
ExampleInstrumentedTest.java 748B
BaseActivity.java 597B
DBConfig.java 546B
LocateState.java 438B
ExampleUnitTest.java 400B
ExampleUnitTest.java 399B
SFBZActivity.java 390B
LocatedCity.java 208B
OnPickListener.java 202B
HotCity.java 200B
InnerListener.java 179B
welcome.jpg 310KB
bike_icon2.png 16KB
bike_icon2.png 16KB
ic_launcher.png 10KB
ic_launcher.png 8KB
ic_launcher.png 5KB
city.png 4KB
cp_icon_empty.png 4KB
ic_launcher.png 3KB
route_end.png 3KB
route_start.png 3KB
ic_launcher.png 2KB
back.png 2KB
return_icon.png 1KB
cp_icon_clear_all.png 1KB
go.png 549B
proguard-rules.pro 679B
proguard-rules.pro 645B
gradle.properties 730B
gradle-wrapper.properties 230B
libBaiduMapSDK_map_v4_3_1.so 1.6MB
libBaiduMapSDK_map_v4_3_1.so 1.6MB
libBaiduMapSDK_map_v4_3_1.so 1.6MB
libBaiduMapSDK_base_v4_3_1.so 257KB
libBaiduMapSDK_base_v4_3_1.so 257KB
libBaiduMapSDK_base_v4_3_1.so 257KB
liblocSDK6a.so 42KB
liblocSDK6a.so 42KB
liblocSDK6a.so 42KB
activity_main.xml 5KB
styles.xml 4KB
AndroidManifest.xml 4KB
activity_sfbz.xml 4KB
activity_set.xml 3KB
activity_route_detail.xml 3KB
dialog_normal_layout.xml 3KB
notification_layout.xml 3KB
styles.xml 2KB
attrs.xml 2KB
cp_search_view.xml 2KB
misc.xml 2KB
colors.xml 2KB
cp_dialog_city_picker.xml 2KB
cp_list_item_location_layout.xml 1KB
cp_empty_view.xml 1KB
dialog_confirm.xml 1KB
dimens.xml 971B
colors.xml 855B
共 133 条
- 1
- 2
资源评论
机智的程序员zero
- 粉丝: 1882
- 资源: 4179
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功