Android快速SDK(10)地址库Location【傻瓜模式】

本文详细介绍了如何在Android应用中使用Location库,包括依赖包的引入、属性配置、样式设置以及代码示例。通过示例代码展示了如何显示、隐藏选择列表,并获取选定的地理位置信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

代码:http://download.youkuaiyun.com/detail/huangbin95487710/9258865

依赖包模式

完整运行还需要用到以下依赖包

  1. 属性配置,一般使用默认配置即可
    • 支持更改背景颜色
    • 支持更改字体大小,左右间距,可见速度
    • 支持更改每行的高度与间距
    • 支持城市,省份,区域组合显示
    • <declare-styleable name="LocationView">
      
              <!-- 精确度 -->
              <attr name="location_accuracy">
                  <enum name="province" value="0" />
                  <enum name="city" value="1" />
                  <enum name="district" value="2" />
              </attr>
              <!-- item文字颜色 -->
              <attr name="location_value_text_color" format="color" />
              <!-- item选中文字颜色 -->
              <attr name="location_items_text_color" format="color" />
              <!-- 背景颜色 -->
              <attr name="location_background_color" format="color" />
              <!-- 字体大小 -->
              <attr name="location_text_size" format="dimension" />
              <!-- 左右间距 -->
              <attr name="location_padding" format="dimension" />
              <!-- 可见数量 -->
              <attr name="location_visible_items" format="integer" />
              <!-- 滚动速度 -->
              <attr name="location_scrolling_duration" format="integer" />
              <!-- item高度 -->
              <attr name="location_additional_item_height" format="dimension" />
              <!-- item间距 -->
              <attr name="location_additional_items_space" format="dimension" />
              <attr name="android:layout_width" />
              <attr name="android:layout_height" />
          </declare-styleable>

    • 默认样式
    • <style name="DivLocationView">
              <item name="location_accuracy">district</item>
              <item name="location_value_text_color">@color/location_def_value_text_color</item>
              <item name="location_items_text_color">@color/location_def_items_text_color</item>
              <item name="location_background_color">@color/location_def_background_color</item>
              <item name="location_text_size">@dimen/location_def_text_size</item>
              <item name="location_padding">@dimen/location_def_padding</item>
              <item name="location_visible_items">@integer/location_def_visible_items</item>
              <item name="location_scrolling_duration">@integer/location_def_scrolling_duration</item>
       </style>
  2. 代码示例
    • 布局XML
    •     <RelativeLayout
              android:id="@+id/picker_layout"
              android:layout_width="match_parent"
              android:layout_height="fill_parent"
              android:layout_alignParentBottom="true" >
      
              <General.Location.LoactionView.LocationView
                  android:id="@+id/location"
                  style="@style/MyDivLocationView"
                  android:layout_width="fill_parent"
                  android:layout_height="wrap_content"
                  android:layout_marginLeft="10dp"
                  android:layout_marginRight="10dp"
                  android:layout_marginTop="25dp" />
          </RelativeLayout>

    • 代码
    • package cn.whonow.whonow.loc;
      
      import General.Location.DB.LocService;
      import General.Location.LoactionView.LocationDto;
      import General.Location.LoactionView.LocationView;
      import General.Location.LoactionView.onLocationChangeListener;
      import General.System.MyLog;
      import android.app.Activity;
      import android.os.Bundle;
      import android.view.View;
      import android.view.View.OnClickListener;
      import android.widget.Button;
      import cn.whonow.whonow.R;
      
      /** 必须实现onLocationChangeListener接口 */
      public class LocActivity extends Activity implements onLocationChangeListener {
      
      	private LocService mLocService;
      	private LocationView mLocation;
      	private LocationDto mDto;
      
      	@Override
      	protected void onCreate(Bundle savedInstanceState) {
      		super.onCreate(savedInstanceState);
      		setContentView(R.layout.test_loc);
      		mLocService = new LocService(this);
      
      		mLocation = (LocationView) findViewById(R.id.location);
      		mLocation.setOnLoactionChangeListener(this);
      		mLocation.setVisibility(View.INVISIBLE);
      
      		Button mButtonTxt = (Button) findViewById(R.id.button1);
      		mButtonTxt.setOnClickListener(new OnClickListener() {
      
      			@Override
      			public void onClick(View v) {
      				// 获取默认列表信息
      				MyLog.show(LocActivity.this, "省份列表:"
      						+ mLocService.getDefaultProvince().size() + " 默认城市列表:"
      						+ mLocService.getDefaultCity().size() + " 默认区县列表:"
      						+ mLocService.getDefaultDistrict().size());
      			}
      
      		});
      
      		Button mButton2 = (Button) findViewById(R.id.button2);
      		mButton2.setOnClickListener(new OnClickListener() {
      
      			@Override
      			public void onClick(View v) {
      				// 显示选择列表
      				mLocation.setVisibility(View.VISIBLE);
      			}
      
      		});
      
      		Button mButton3 = (Button) findViewById(R.id.button3);
      		mButton3.setOnClickListener(new OnClickListener() {
      
      			@Override
      			public void onClick(View v) {
      				// 隐藏选择列表
      				mLocation.setVisibility(View.INVISIBLE);
      
      				MyLog.show(LocActivity.this, "省份:" + mDto.provinceName + " 城市:"
      						+ mDto.cityName + " 区县:" + mDto.districtName);
      			}
      
      		});
      
      	}
      
      	@Override
      	public void onLocationChange(LocationDto base) {
      		// TODO Auto-generated method stub
      		mDto = base;
      	}
      }

  3. 效果图
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值