package excellent.sophiaheng.myapplication;
import android.Manifest;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.os.Build;
import android.os.Bundle;
import android.support.v4.app.ActivityCompat;
import android.support.v7.widget.PopupMenu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.Toast;
import com.baidu.location.BDLocation;
import com.baidu.location.BDLocationListener;
import com.baidu.location.LocationClient;
import com.baidu.location.LocationClientOption;
import com.baidu.mapapi.SDKInitializer;
import com.baidu.mapapi.map.BaiduMap;
import com.baidu.mapapi.map.BitmapDescriptor;
import com.baidu.mapapi.map.BitmapDescriptorFactory;
import com.baidu.mapapi.map.MapStatus;
import com.baidu.mapapi.map.MapStatusUpdate;
import com.baidu.mapapi.map.MapStatusUpdateFactory;
import com.baidu.mapapi.map.MapView;
import com.baidu.mapapi.map.MarkerOptions;
import com.baidu.mapapi.map.MyLocationConfiguration;
import com.baidu.mapapi.map.MyLocationData;
import com.baidu.mapapi.map.OverlayOptions;
import com.baidu.mapapi.model.LatLng;
import excellent.sophiaheng.myapplication.util.Utils;
import excellent.sophiaheng.myapplication.FindScanActivity;
public class MainActivity extends Activity {
private static final int BAIDU_READ_PHONE_STATE = 100;
private MapView mMapView = null;
private BaiduMap mBaiduMap;
private LocationClient mlocationClient;
private MylocationListener mlistener;
private Context context;
private Button mQRcode;
private double mLatitude;
private double mLongitude;
private float mCurrentX;
private ImageButton mGetMylocationBN;
PopupMenu popup = null;
//自定义图标
private BitmapDescriptor mIconLocation;
private MyOrientationListener myOrientationListener;
//定位图层显示方式
private MyLocationConfiguration.LocationMode locationMode;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
SDKInitializer.initialize(getApplicationContext());
setContentView(R.layout.activity_main);
this.context = this;
initView();
//判断是否为Android 6.0 以上的系统版本,如果是,需要动态添加权限
if (Build.VERSION.SDK_INT >= 23) {
showContacts();
} else {
initLocation();//initLocation为定位方法
}
}
private void initView() {
mMapView = findViewById(R.id.id_bmapView);
mBaiduMap = mMapView.getMap();
//根据给定增量缩放地图级别
MapStatusUpdate msu = MapStatusUpdateFactory.zoomTo(18.0f);
mBaiduMap.setMapStatus(msu);
MapStatus mMapStatus;//地图当前状态
MapStatusUpdate mMapStatusUpdate;//地图将要变化成的状态
mMapStatus = new MapStatus.Builder().overlook(-45).build();
mMapStatusUpdate = MapStatusUpdateFactory.newMapStatus(mMapStatus);
mBaiduMap.setMapStatus(mMapStatusUpdate);
mGetMylocationBN = findViewById(R.id.id_bn_getMyLocation);
mGetMylocationBN.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
getMyLocation();
}
});
mQRcode = findViewById(R.id.sweep_QRcode);
mQRcode.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(MainActivity.this, FindScanActivity.class);
startActivity(intent);
}
});
}
/**
* 定位方法
*/
private void initLocation() {
locationMode = MyLocationConfiguration.LocationMode.NORMAL;
//定位服务的客户端。宿主程序在客户端声明此类,并调用,目前只支持在主线程中启动
mlocationClient = new LocationClient(this);
mlistener = new MylocationListener();
//注册监听器
mlocationClient.registerLocationListener(mlistener);
//配置定位SDK各配置参数,比如定位模式、定位时间间隔、坐标系类型等
LocationClientOption mOption = new LocationClientOption();
//设置坐标类型
mOption.setCoorType("bd09ll");
//设置是否需要地址信息,默认为无地址
mOption.setIsNeedAddress(true);
//设置是否打开gps进行定位
mOption.setOpenGps(true);
//设置扫描间隔,单位是毫秒,当<1000(1s)时,定时定位无效
int span = 1000;
mOption.setScanSpan(span);
//设置 LocationClientOption
mlocationClient.setLocOption(mOption);
//初始化图标,BitmapDescriptorFactory是bitmap 描述信息工厂类.
mIconLocation = BitmapDescriptorFactory
.fromResource(R.mipmap.icon_geo);
myOrientationListener = new MyOrientationListener(context);
//通过接口回调来实现实时方向的改变
myOrientationListener.setOnOrientationListener(new MyOrientationListener.OnOrientationListener() {
@Override
public void onOrientationChanged(float x) {
mCurrentX = x;
}
});
}
@Override
protected void onStart() {
super.onStart();
//开启定位
mBaiduMap.setMyLocationEnabled(true);
if (!mlocationClient.isStarted()) {
mlocationClient.start();
}
myOrientationListener.start();
}
@Override
protected void onStop() {
super.onStop();
//停止定位
mBaiduMap.setMyLocationEnabled(false);
mlocationClient.stop();
myOrientationListener.stop();
}
@Override
protected void onResume() {
super.onResume();
mMapView.onResume();
}
@Override
protected void onPause() {
super.onPause();
mMapView.onPause();
}
@Override
protected void onDestroy() {
super.onDestroy();
mMapView.onDestroy();
}
public void getMyLocation() {
LatLng latLng = new LatLng(mLatitude, mLongitude);
MapStatusUpdate msu = MapStatusUpdateFactory.newLatLng(latLng);
mBaiduMap.setMapStatus(msu);
}
public void onPopupMenuClick(View v) {
// 创建PopupMenu对象
popup = new PopupMenu(this, v);
// 将R.menu.menu_main菜单资源加载到popup菜单中
getMenuInflater().inflate(R.menu.menu_main, popup.getMenu());
// 为popup菜单的菜单项单击事件绑定事件监听器
popup.setOnMenuItemClickListener(
new PopupMenu.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
switch (item.getItemId()) {
case R.id.id_map_common:
mBaiduMap.setMapType(BaiduMap.MAP_TYPE_NORMAL);
break;
case R.id.id_map_site:
mBaiduMap.setMapType(BaiduMap.MAP_TYPE_SATELLITE);
break;
case R.id.id_map_traffic:
if (mBaiduMap.isTrafficEnabled()) {
mBaiduMap.setTrafficEnabled(false);
item.setTitle("实时交通(off)");
} else {
mBaiduMap.setTrafficEnabled(true);
item.setTitle("实时交通(on)");
}
break;
case R.id.id_map_mlocation:
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
如果您下载了本程序,但是该程序存在问题无法运行,那么您可以选择退款或者寻求我们的帮助(如果找我们帮助的话,是需要追加额外费用的)。另外,您不会使用资源的话(这种情况不支持退款),也可以找我们帮助(需要追加额外费用) 随着移动互联网技术的发展和用户需求的变化,【小程序名称】应运而生,以其轻量化、便捷化的设计理念为用户提供了一种全新的服务模式。作为一款无需下载安装即可使用的应用,【小程序名称】依托于微信庞大的生态系统,让用户在微信内就能轻松实现各种功能操作。 【小程序名称】的核心功能主要集中在【具体服务领域】,例如在线购物、本地生活服务、教育学习或健康管理等。它简化了传统APP繁琐的注册登录流程,支持微信一键授权登录,极大地提升了用户体验。用户通过搜索或扫描二维码,瞬间即可开启使用,享受快速加载、流畅运行的服务。 该小程序界面设计简洁明了,布局合理,易于上手。同时,其特色功能如实时更新的信息推送、个性化推荐以及社交分享功能,让用户能够及时获取所需信息,并方便地将优质内容分享至朋友圈或好友,实现信息的高效传播与互动。 【小程序名称】注重数据安全与隐私保护,严格遵守国家法律法规和微信平台的规定,确保用户数据的安全无虞。此外,其背后的开发团队持续迭代更新,根据用户反馈不断优化产品性能,提升服务质量,致力于打造一个贴近用户需求、充满活力的小程序生态。 总结来说,【小程序名称】凭借其小巧便携、快捷高效的特性,不仅节省了用户的手机存储空间,更为用户提供了无缝衔接的便利服务,是现代生活中不可或缺的一部分,真正实现了“触手可及”的智能生活新体验。只需轻点屏幕,无限精彩尽在掌握之中。
资源推荐
资源详情
资源评论
收起资源包目录
仿小黄车程序定位智能跟随搬运装置+微信扫码启动V1.0.zip (102个子文件)
app-release.apk 11.99MB
gradlew.bat 2KB
未确认 322723.crdownload 2.99MB
.gitignore 118B
.gitignore 7B
build.gradle 1KB
build.gradle 546B
settings.gradle 15B
gradlew 5KB
BaiduLBS_Android.jar 2.93MB
zxing3.2.1.jar 536KB
gradle-wrapper.jar 52KB
httpmime-4.1.2.jar 26KB
IndoorscapeAlbumPlugin.jar 25KB
MainActivity.java 20KB
CameraManager.java 14KB
CameraConfigurationManager.java 10KB
ViewfinderView.java 9KB
FindScanActivity.java 7KB
Intents.java 7KB
FlashlightManager.java 5KB
CaptureActivityHandler.java 5KB
PlanarYUVLuminanceSource.java 4KB
DecodeHandler.java 4KB
DecodeFormatManager.java 4KB
MetricsUtil.java 3KB
RGBLuminanceSource.java 3KB
DecodeThread.java 3KB
InactivityTimer.java 2KB
PreviewCallback.java 2KB
MyOrientationListener.java 2KB
AutoFocusCallback.java 2KB
FinishListener.java 1KB
ViewfinderResultPointCallback.java 1KB
Utils.java 1023B
ExampleInstrumentedTest.java 769B
ScanResultActivity.java 630B
ExampleUnitTest.java 412B
output.json 206B
beep.ogg 12KB
toast_loca.png 70KB
button_bg.png 49KB
button_bg.png 49KB
car_small.png 25KB
icon_bike.png 18KB
ic_launcher_round.png 15KB
ic_launcher_round.png 10KB
icon_bike1.png 10KB
ic_launcher.png 9KB
ic_launcher_round.png 7KB
ic_launcher.png 6KB
ic_launcher_round.png 5KB
icon_geo.png 5KB
icon_geo.png 5KB
ic_launcher.png 4KB
ic_launcher.png 3KB
ic_launcher_round.png 3KB
ic_launcher.png 2KB
bg_alpha.9.png 542B
bg_alpha.9.png 542B
proguard-rules.pro 751B
gradle.properties 730B
gradle-wrapper.properties 230B
libapp_BaiduNaviApplib.so 5.21MB
libBaiduMapSDK_map_for_bikenavi_v4_5_2.so 2.38MB
libbd_etts.so 1.6MB
libapp_BaiduVIlib.so 1.55MB
libgnustl_shared.so 758KB
libcrypto.so 622KB
libBaiduMapSDK_bikenavi_v4_5_2.so 589KB
libaudiomessage-jni.so 563KB
libBDSpeechDecoder_V1.so 401KB
libapp_BaiduPanoramaAppLib.so 342KB
libBaiduMapSDK_base_v4_5_2.so 329KB
libetts_domain_data_builder.so 169KB
libssl.so 157KB
libcurl.so 154KB
liblocSDK7a.so 42KB
liblocnaviSDK.so 34KB
libbdtts.so 17KB
libbds.so 13KB
ic_launcher_background.xml 5KB
AndroidManifest.xml 4KB
activity_main.xml 3KB
ic_launcher_foreground.xml 2KB
misc.xml 2KB
ids.xml 1KB
menu_main.xml 1KB
activity_find_scan.xml 944B
styles.xml 716B
gradle.xml 626B
runConfigurations.xml 564B
activity_scan_result.xml 488B
Project_Default.xml 443B
colors.xml 417B
modules.xml 351B
strings.xml 304B
ic_launcher.xml 272B
ic_launcher_round.xml 272B
sophiaheng.xml 171B
共 102 条
- 1
- 2
资源评论
JJJ69
- 粉丝: 6222
- 资源: 5780
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功