zoukankan      html  css  js  c++  java
  • Android学习十一:高德地图使用

    写这篇文章主要有三个目的:

      1.使用高德地图api定位

      2.获取天气数据

      3.编程练手

    文件结构

    清单文件信息说明:

    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="org.tonny"
        android:versionCode="1"
        android:versionName="1.0" >
    
        <uses-sdk
            android:minSdkVersion="8"
            android:targetSdkVersion="21" />
    
        <uses-permission android:name="android.permission.INTERNET" />
        <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
        <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
        <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
        <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
        <uses-permission android:name="android.permission.READ_PHONE_STATE" />
        <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
        <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
        <uses-permission android:name="android.permission.CHANGE_CONFIGURATION" />
        <uses-permission android:name="android.permission.WRITE_SETTINGS" />
    
        <application
            android:allowBackup="true"
            android:icon="@drawable/ic_launcher"
            android:label="@string/app_name"
            android:theme="@style/AppTheme" >
            <meta-data
                android:name="com.amap.api.v2.apikey"
                android:value="****" />
    
            <activity
                android:name=".MainActivity"
                android:label="@string/app_name" >
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
    
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
            <activity
                android:name=".WeatherActivity"
                android:label="@string/title_activity_weather" >
            </activity>
        </application>
    
    </manifest>

    定位代码:

    package org.tonny;
    
    import com.amap.api.location.AMapLocation;
    import com.amap.api.location.AMapLocationListener;
    import com.amap.api.location.LocationManagerProxy;
    import com.amap.api.location.LocationProviderProxy;
    
    import android.app.Activity;
    import android.content.DialogInterface;
    import android.content.DialogInterface.OnClickListener;
    import android.content.Intent;
    import android.location.Location;
    import android.os.Bundle;
    import android.util.Log;
    import android.view.View;
    
    public class MainActivity extends Activity implements AMapLocationListener
    {
        LocationManagerProxy mLocationManagerProxy;
    
        @Override
        protected void onCreate(Bundle savedInstanceState)
        {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            mLocationManagerProxy = LocationManagerProxy.getInstance(MainActivity.this);
    
            /**
             * 第一个参数,使用定位的类型,混合模型,如网络,gps等 第二个参数,定位周期 第三个参数,移动多少距离的时候生效(只有GPS模式下有效)
             */
            mLocationManagerProxy.requestLocationData(LocationProviderProxy.AMapNetwork, 2 * 1000, 15, MainActivity.this);
        }
    
        public void onClick(View v)
        {
            Intent intent = new Intent(MainActivity.this, WeatherActivity.class);
            startActivity(intent);
        }
    
        @Override
        public void onLocationChanged(Location location)
        {
            // TODO Auto-generated method stub
    
        }
    
        @Override
        public void onStatusChanged(String provider, int status, Bundle extras)
        {
            // TODO Auto-generated method stub
    
        }
    
        @Override
        protected void onDestroy()
        {
            super.onDestroy();
            mLocationManagerProxy.destroy();
        }
    
        @Override
        public void onProviderEnabled(String provider)
        {
            // TODO Auto-generated method stub
    
        }
    
        @Override
        public void onProviderDisabled(String provider)
        {
            // TODO Auto-generated method stub
    
        }
    
        @Override
        public void onLocationChanged(AMapLocation location)
        {
            if (location != null && location.getAMapException().getErrorCode() == 0)
            {
                Log.e("Hello", location.toString());
            }
        }
    
    }

    相应的布局文件:

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context="${relativePackage}.${activityClass}" >
    
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/hello_world" />
        
        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="查看天气" 
            android:onClick="onClick"/>
    
    </RelativeLayout>

    天气代码:

    package org.tonny;
    
    import com.amap.api.location.AMapLocalWeatherForecast;
    import com.amap.api.location.AMapLocalWeatherListener;
    import com.amap.api.location.AMapLocalWeatherLive;
    import com.amap.api.location.LocationManagerProxy;
    
    import android.app.Activity;
    import android.os.Bundle;
    import android.util.Log;
    
    public class WeatherActivity extends Activity implements AMapLocalWeatherListener
    {
    
        private LocationManagerProxy mLocationManagerProxy;
    
        @Override
        protected void onCreate(Bundle savedInstanceState)
        {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_weather);
    
            mLocationManagerProxy = LocationManagerProxy.getInstance(WeatherActivity.this);
            mLocationManagerProxy.requestWeatherUpdates(LocationManagerProxy.WEATHER_TYPE_LIVE, WeatherActivity.this);
        }
    
        @Override
        protected void onDestroy()
        {
    
        }
    
        @Override
        public void onWeatherForecaseSearched(AMapLocalWeatherForecast forecast)
        {
    
        }
    
        /*
         * (non-Javadoc)
         * 
         * @see
         * com.amap.api.location.AMapLocalWeatherListener#onWeatherLiveSearched(
         * com.amap.api.location.AMapLocalWeatherLive)
         */
        @Override
        public void onWeatherLiveSearched(AMapLocalWeatherLive live)
        {
            Log.e("Weather", live.getCityCode());
            Log.e("Weather", live.getCity());
            Log.e("Weather", live.getTemperature());
    
            Log.e("Weather", live.getWindDir());
        }
    }

    相应的布局文件:

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context="${relativePackage}.${activityClass}" >
    
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="查看天气" />
    
    </RelativeLayout>
  • 相关阅读:
    USB HID Report Descriptor 报告描述符详解
    USB 管道 && 端点
    USB描述符解析-->枚举.
    USB HID介绍
    USB2.0速度识别
    spring core
    好妈妈【第三章】一生受用的品格教育,不止孩子需要,父母也需要。
    好妈妈【第二章】把学习做成轻松的事,父母如何提升孩子的学习成绩
    好妈妈【第一章】提高爱的质量,小学前的儿童教育
    Java日志系统
  • 原文地址:https://www.cnblogs.com/supertonny/p/4560027.html
Copyright © 2011-2022 走看看