面试记录

2016-08-16  本文已影响0人  SmNiuhe

中华新闻

Github开源项目 SystemBarTint
自己封装后
// 初始化窗体
@SuppressLint("ResourceAsColor")
@TargetApi(19)
private void initWindow() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
getWindow().addFlags(
WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
getWindow().addFlags(
WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);

        mTintManager = new SystemBarTintManager(this);     // 色彩管理者
        mColorPicker = new ColorPicker(this);             // 获取颜色采集器
        // mTintManager.setStatusBarTintColor(R.color.main_color);
        mTintManager.setStatusBarTintEnabled(true);     // 设置状态栏可用
        int color = Color.argb(100, 255, 0, 0);         
        mTintManager.setTintColor(color);                 // 设置色彩颜色
    }
   }
  1. 根据指定的宽度对正方形进行缩放
  2. 裁剪成圆形

酒心网###

定位方式#

     gps一种定位方式
     1.wifi定位,IP地址,根据你的IP地址获取你的地理位置,精确度不是特别高了
     2.基站定位,基站就是为电话服务,信号的强弱决定了你离基站的距离,精确度比较高,几十米--几公里,精确度取决于基站的个数

     wifi定位和基站定位局限性:不能定位海拔
     3.gps定位,gps定位卫星进行定位,使用最少卫星实现全球定位,去和       
       gps定位卫星进行通讯来获取定位坐标,通过光波进行通讯,必须得到     
       空旷地方才能进行定位,连接至少需要一分钟,耗电,精确度特别高,不
       需要联网,联网:agps技术,通过联网来修正获取的坐标,特别准确的

       百度定位sdk   gps
       高德  sdk

定位的具体代码

android.permission.ACCESS_MOCK_LOCATION : 模拟位置的权限,模拟器中必须加的,真机可加可不加
android.permission.ACCESS_FINE_LOCATION : 精确位置的权限,真机必须添加
android.permission.ACCESS_COARSE_LOCATION : 大概位置的权限,真机必须添加

passive : 被动,基站定位
gps : gps定位

定位的步骤
1.获取位置的管理者
    //1.获取位置的管理者
    locationManager = (LocationManager) getSystemService(LOCATION_SERVICE);
2.获取定位方式
    //2.获取定位方式
    //2.1获取所有的定位方式
    //enabledOnly : true : 返回所有可用的定位方式
    List<String> providers = locationManager.getProviders(true);
    for (String string : providers) {
        System.out.println(string);
    }
    //2.2获取最佳的定位方式
    Criteria criteria = new Criteria();
    criteria.setAltitudeRequired(true);//设置是否可以定位海拔,true:可以定位海拔,一定返回gps定位
    //criteria : 设置定位的属性,决定使用什么定位方式的
    //enabledOnly : true : 定位可用的就返回
    String bestProvider = locationManager.getBestProvider(criteria, true);
    System.out.println("最佳的定位方式:"+bestProvider);
3.定位操作
    a.定位
        //provider : 定位方式
        //minTime : 定位的最小时间间隔
        //minDistance : 定位的最小距离间隔
        //listener : LocationListener
        locationManager.requestLocationUpdates(bestProvider, 0, 0, myLocationListener);
    b.LocationListener
        private class MyLocationListener implements LocationListener{
            //当定位位置改变的时候调用
            //location : 当前的位置
            @Override
            public void onLocationChanged(Location location) {
                double latitude = location.getLatitude();//获取纬度,平行
                double longitude = location.getLongitude();//获取经度
                textview.setText("longitude:"+longitude+"   latitude:"+latitude);
            }
            //当定位状态改变的时候调用
            @Override
            public void onStatusChanged(String provider, int status, Bundle extras) {
                // TODO Auto-generated method stub
                
            }
            //当定位可用的时候调用
            @Override
            public void onProviderEnabled(String provider) {
                // TODO Auto-generated method stub
                
            }
            //当定位不可用的时候调用
            @Override
            public void onProviderDisabled(String provider) {
                // TODO Auto-generated method stub
                
            }
            
        }
4.关闭gps定位
    @Override
    protected void onDestroy() {
        super.onDestroy();
        //关闭gps定位,高版本中已经不能这么做了,高版本中规定关闭和开启gps必须交由用户自己去实现
        locationManager.removeUpdates(myLocationListener);
    }

 GPS定位城市需要做两个步骤:
 1、取得用户当前位置的经度,纬度。 
 2、根据经纬度转换成城市名称。
    经纬度转换成城市名称,只能使用地图服务了。自己做不来。
    地图服务API有两个,一个是百度地图,一个是谷歌地图。百度地图API    
    调用需要注册百度帐号,并申请APP_KEY,谷歌地图API直接调用即可。

    百度地图API调用地址:
   http://api.map.baidu.com/geocoder?output=json&location=纬度,经度&key=APP_KEY

QuickSideBar

帮助快速查阅对应分组的侧边栏,可以配合任意列表,demo中给出配合RecyclerView(浮动分组使用stickyheadersrecyclerview)。

项目地址:https://github.com/saiwu-bigkoo/Android-QuickSideBar

侧边栏抽屉效果

Paste_Image.png
上一篇 下一篇

猜你喜欢

热点阅读