(android地图开发) 高德地图添加抽屉栏效果
来源:互联网 发布:阿里云 debian 更换源 编辑:程序博客网 时间:2024/04/30 00:35
截图效果:
Android 抽屉相关介绍:
SlidingDrawer(滑动式抽屉)隐藏屏外的内容,并允许用户拖拽一个handle以显示隐藏的内容。它由两个子视图组成:一个是用户拖拽的handle(柄),另一个是随着拖动变化的content(内容)。SlidingDrawer应当作为内部布局的覆盖来使用,也就是说SlidingDrawer内部应该使用FrameLayout或RelativeLayout布局。SlidingDrawer的大小决定了其内容显示时所占空间的大小,所以它的尺寸一般定义为match_parent。在XML布局中SlidingDrawer必须指定handle和content的id.其中:android:allowSingleTap 指示是否可通过单击handle打开或关闭(如果是false,刚用户必须通过拖动,滑动或者使用轨迹球,来打开/关闭抽屉。)默认的是true。android:animateOnClick 指示当用户点击handle的时候,抽屉是否以动画的形式打开或关闭。默认的是true。android:bottomOffset Handle距离SlidingDrawer底部的额外距离android:content 标识SlidingDrawer的内容android:handle 标识SlidingDrawer的han
源代码:
布局文件:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <SlidingDrawer android:id="@+id/slidingDrawer1" android:layout_width="fill_parent" android:layout_height="fill_parent" android:content="@+id/content" android:handle="@+id/handle" > <Button android:id="@+id/handle" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/sliding_handle_sel" /> <LinearLayout android:id="@+id/content" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="#ffffff" android:orientation="vertical" > <GridView android:id="@+id/grid" android:layout_width="fill_parent" android:layout_height="wrap_content" android:horizontalSpacing="8dp" android:numColumns="5" android:verticalSpacing="6dp" ></GridView> <GridView android:id="@+id/grids" android:layout_width="fill_parent" android:layout_height="wrap_content" android:horizontalSpacing="8dp" android:numColumns="4" android:verticalSpacing="12dp" android:layout_marginTop="10dp" ></GridView> </LinearLayout> </SlidingDrawer></LinearLayout>
组件和适配器代码:
package com.rf.adapter;import com.rf.component.ViewHolder;import android.content.Context;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;public class ImageAdapter extends BaseAdapter {// 定义相关参数(Context:上下文,Integer[]:图片资源)private Context context;private int[] imageIds;private String[] contents;// 相关的构造函数public ImageAdapter(Context context, int[] imageIds,String[] contents) {super();this.context = context;this.imageIds = imageIds;this.contents=contents;}@Overridepublic int getCount() {// TODO Auto-generated method stubreturn imageIds.length;}@Overridepublic Object getItem(int arg0) {// TODO Auto-generated method stubreturn arg0;}@Overridepublic long getItemId(int position) {// TODO Auto-generated method stubreturn position;} //核心代码@Overridepublic View getView(int position, View convertView, ViewGroup parent) {// TODO Auto-generated method stubViewHolder holder;if (convertView == null) {LayoutInflater inflater = LayoutInflater.from(context);convertView = inflater.inflate(com.rf.mapabc.R.layout.adapter, null);holder = new ViewHolder(convertView);// 设置标识convertView.setTag(holder);} else {holder = (ViewHolder) convertView.getTag();}holder.getImageView().setBackgroundResource(imageIds[position]);holder.getTextview().setText(contents[position]);return convertView;}}
package com.rf.adapter;import com.rf.component.TextHolder;import com.rf.component.ViewHolder;import android.content.Context;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;public class MenuAdapter extends BaseAdapter {//相关参数private Context context;private String[] contexts;//相关构造函数public MenuAdapter(Context context,String[] contexts) {super();this.context = context;this.contexts=contexts;}@Overridepublic int getCount() {// TODO Auto-generated method stubreturn contexts.length;}@Overridepublic Object getItem(int position) {// TODO Auto-generated method stubreturn position;}@Overridepublic long getItemId(int position) {// TODO Auto-generated method stubreturn position;}@Overridepublic View getView(int position, View convertView, ViewGroup parent) {// TODO Auto-generated method stubTextHolder holder;if (convertView == null) {LayoutInflater inflater = LayoutInflater.from(context);convertView = inflater.inflate(com.rf.mapabc.R.layout.menu, null);holder = new TextHolder(convertView);// 设置标识convertView.setTag(holder);} else {holder = (TextHolder) convertView.getTag();}holder.getTextview().setText(contexts[position]);return convertView;}}
package com.rf.component;import com.rf.mapabc.R;import android.view.View;import android.widget.TextView;public class TextHolder {private View baseview;private TextView textview;//相关构造函数public TextHolder(View baseview) {super();this.baseview = baseview;}//获取相关组件public TextView getTextview() {textview=(TextView) baseview.findViewById(R.id.text);return textview;}}
package com.rf.component;import com.rf.mapabc.R;import android.view.View;import android.widget.ImageView;import android.widget.TextView;public class ViewHolder {private View baseView;private ImageView imageView;private TextView textview;// 相关的构造函数public ViewHolder(View baseView) {super();this.baseView = baseView;}// 相关组件实例化方法public ImageView getImageView() {imageView = (ImageView) baseView.findViewById(R.id.imageView);return imageView;}public TextView getTextview() {textview = (TextView) baseView.findViewById(R.id.textView);return textview;}}
核心代码:
package com.rf.mapabc;import com.rf.adapter.ImageAdapter;import com.rf.adapter.MenuAdapter;import android.app.Activity;import android.os.Bundle;import android.widget.GridView;import android.widget.SlidingDrawer;import android.widget.SlidingDrawer.OnDrawerOpenListener;public class Test extends Activity {@Overridepublic void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);setContentView(R.layout.test);//抽屉组件类SlidingDrawer slidingDrawer1=(SlidingDrawer) findViewById(R.id.slidingDrawer1);//相关数据信息 int[] images=new int[]{R.drawable.pg1,R.drawable.pg2,R.drawable.pg3,R.drawable.pg4,R.drawable.pg5,R.drawable.pg6,R.drawable.pg7,R.drawable.pg8,R.drawable.pg9,R.drawable.pg10}; String[] contents=new String[]{ "团购","美食","酒店","公交站","银行","电影院","KTV","丽人","超市","景点" }; String[] texts=new String[]{"中餐","小吃快餐","火锅","自助餐","外卖","湘菜","西餐","KFC","星级酒店","连锁酒店","今夜特价","招待所","电影院","KTV","网吧","酒吧","咖啡厅","商场","景点","洗浴","公交站","加油站","停车场","火车站" };//GridView 组件final GridView gridview=(GridView) findViewById(R.id.grid);final GridView girviews=(GridView) findViewById(R.id.grids);//资源文件绑定final ImageAdapter adapter=new ImageAdapter(this,images,contents);final MenuAdapter adapters=new MenuAdapter(this,texts);//抽屉类(打开事件)slidingDrawer1.setOnDrawerOpenListener(new OnDrawerOpenListener(){@Overridepublic void onDrawerOpened() {gridview.setAdapter(adapter);girviews.setAdapter(adapters);//编写想的监听事件}});}
- (android地图开发) 高德地图添加抽屉栏效果
- (Android 地图开发) 高德地图添加覆盖物
- (android地图开发) 高德地图添加自定义菜单栏
- (android 地图开发) 高德地图添加浮动按钮
- Android高德地图开发 地图事件
- 开发Android高德地图
- Android 高德地图添加线段纹理
- (android地图开发) 高德地图开发准备
- Android 手机地图开发-高德地图问题
- (android地图开发) 高德地图自定义标题栏
- (android地图开发) 高德地图自定义对话框
- (android地图开发) 高德地图手势切换
- Android Studio 关于高德地图的开发:显示地图
- 高德地图开发
- 高德地图开发
- Android Map 开发之高德地图
- Android Map 开发之高德地图
- Android高德地图开发详解
- Cocos2d-x 关于在iOS平台真机测试的一些注意
- android背景选择器selector用法汇总
- Android - Binder机制 - ProcessState和IPCThreadState
- uniGUI中使用Grid++Report设计报表
- 黑马程序员_使用管道流进行两线程间数据交换
- (android地图开发) 高德地图添加抽屉栏效果
- 字符串strip()方法注意事项
- 开源MVC框架Struts (二) Struts工作流程分析
- uva 10010
- fcntl使用
- 更改cocos2d-x android 项目的cocos2d-x的版本
- 服务(Service)全解析(五)--前台Service
- Mybatis 批量插入的方法
- 快速排序--qsotr()函数