SlidingDrawer
16lz
2021-12-04
SlidingDrawer(隐藏式抽屉),它配置上采用了水平展开和垂直展开两种(android:orientation)方式,在XML里必须指定其使用的android:handle和android:content,前者委托要展开的图片(点击的那个控件来打开抽屉),后者则是要展开的Layout Content(打开抽屉后的内容)。还是很简单的。
配置文件:
配置文件:
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" ><TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" /><SlidingDrawer android:id="@+id/drawer1" android:layout_width="fill_parent" android:layout_height="fill_parent" android:handle="@+id/myImage1" android:content="@+id/myContent1" android:orientation="horizontal" > <LinearLayout android:id="@+id/layout1" android:layout_width="35px" android:layout_height="fill_parent" android:gravity="center"> <ImageView android:id="@id/myImage1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/left"/> </LinearLayout> <GridView android:id="@id/myContent1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:numColumns="2" android:gravity="center" android:background="@color/black"/></SlidingDrawer></RelativeLayout>
package com.kevin.slidingdrawer;import android.app.Activity;import android.os.Bundle;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.GridView;import android.widget.ImageView;import android.widget.SlidingDrawer;import android.widget.SlidingDrawer.OnDrawerCloseListener;import android.widget.SlidingDrawer.OnDrawerOpenListener;import android.widget.TextView;public class Main extends Activity {private GridView gv;private SlidingDrawer sd;private ImageView im;private int[] icons = {R.drawable.android_normal,R.drawable.android_waving,R.drawable.left,R.drawable.right}; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); gv = (GridView) findViewById(R.id.myContent1); sd = (SlidingDrawer) findViewById(R.id.drawer1); im = (ImageView) findViewById(R.id.myImage1); gv.setAdapter(new GridViewAdapter()); // 设置SlidingDrawer被打开的事件处理 sd.setOnDrawerOpenListener(new OnDrawerOpenListener() {@Overridepublic void onDrawerOpened() {im.setImageResource(R.drawable.right);}}); // 设置SlidingDrawer被关闭的事件处理 sd.setOnDrawerCloseListener(new OnDrawerCloseListener() {@Overridepublic void onDrawerClosed() {im.setImageResource(R.drawable.left);}}); } // 因为我这边Adapter的数据不仅仅是TextView,所以我自己定义了一个Adapter class GridViewAdapter extends BaseAdapter{@Overridepublic int getCount() {return icons.length;}@Overridepublic Object getItem(int position) {return position;}@Overridepublic long getItemId(int position) {return position;}@Overridepublic View getView(int position, View convertView, ViewGroup parent) {LayoutInflater flater = Main.this.getLayoutInflater();View view = flater.inflate(R.layout.grid, null);ImageView iv = (ImageView) view.findViewById(R.id.imageView1);TextView tv = (TextView) view.findViewById(R.id.textView1);iv.setImageResource(icons[position]);tv.setText(String.valueOf(position));return view;} }}
更多相关文章
- AVD(android virtual device )路径设置
- 打开android默认浏览器
- Android(安卓)studio不能在布局预览的问题
- Android(安卓)-- 隐藏式抽屉(SlidingDrawer)
- Android(安卓)RecyclerView 滑动删除例子
- android手电源码
- Android抽屉效果(使用LayoutParams来移动View的位置)
- 在/external/tinyalsa/pcm.c 添加android log
- android 打开微信扫一扫