In Android 1.5, the slidingdrawer hidden drawer is added. When your UI layout is limited, you can consider using this hidden drawer when there are no more widgets. Note two points with slidingdrawer: Android: handle (delegate the layout configuration for the image to be expanded) and Android: content (layout content to be expanded). For details, indicate the source:
Http://blog.csdn.net/wdaming1986/article/details/6898374
See the program below:
Program start interface: Click the arrow on the right to display the interface:
Click the arrow on the left to display the page:
In the slidingdraweractivity project:
I. Code in the slidingdrawermainactivity. Java class under the com.cn. Daming package:
package com.cn.daming;import android.app.Activity;import android.content.res.Configuration;import android.os.Bundle;import android.widget.GridView;import android.widget.ImageView;import android.widget.SlidingDrawer;public class SlidingDrawerMainActivity extends Activity {private GridView gridView;private SlidingDrawer slidingDrawer;private ImageView imageView;private int[] icons={R.drawable.title1, R.drawable.title2,R.drawable.title3, R.drawable.title4,R.drawable.title5, R.drawable.title6};private String[] items={"Phone", "Message", "AddImage", "Music", "Telephone", "SMS"};@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); gridView = (GridView)findViewById(R.id.mycontent); slidingDrawer = (SlidingDrawer)findViewById(R.id.sliding_drawer); imageView = (ImageView)findViewById(R.id.my_image); MyGridViewAdapter adapter = new MyGridViewAdapter(this, items, icons); gridView.setAdapter(adapter); slidingDrawer.setOnDrawerOpenListener(new SlidingDrawer.OnDrawerOpenListener() {public void onDrawerOpened() {imageView.setImageResource(R.drawable.right1);}}); slidingDrawer.setOnDrawerCloseListener(new SlidingDrawer.OnDrawerCloseListener() {public void onDrawerClosed() {imageView.setImageResource(R.drawable.left1);}}); }@Overridepublic void onConfigurationChanged(Configuration newConfig) {super.onConfigurationChanged(newConfig);}}
Ii. Code in the mygridviewadapter. Java class under the com.cn. Daming package:
package com.cn.daming;import android.content.Context;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.ImageView;import android.widget.TextView;public class MyGridViewAdapter extends BaseAdapter{private Context context;private String[] items;private int[] icons;public MyGridViewAdapter(Context context, String[] items, int[] icons){this.context = context;this.items = items;this.icons = icons;}public int getCount() {return items.length;}public Object getItem(int arg0) {return items[arg0];}public long getItemId(int position) {return position;}public View getView(int position, View convertView, ViewGroup parent) {LayoutInflater layoutInflater = LayoutInflater.from(context);View view = (View)layoutInflater .inflate(R.layout.grid, null);ImageView imageView = (ImageView)view.findViewById(R.id.image_view);TextView textview = (TextView)view.findViewById(R.id.text_view);imageView.setImageResource(icons[position]);textview.setText(items[position]);return view;}}
3. Code in Main. xml under layout in the res package:
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:id="@+id/text_view" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginTop="10dip" android:text="@string/hello" android:textSize="10pt" android:gravity="center" /> <SlidingDrawer android:id="@+id/sliding_drawer" android:layout_width="fill_parent" android:layout_height="fill_parent" android:handle="@+id/layout1" android:content="@+id/mycontent" android:orientation="horizontal" > <LinearLayout android:id="@id/layout1" android:layout_width="35px" android:layout_height="fill_parent" android:gravity="center" android:background="#00000000" > <ImageView android:id="@+id/my_image" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/left1" /> </LinearLayout> <GridView android:id="@id/mycontent" android:layout_width="wrap_content" android:layout_height="wrap_content" android:paddingTop="20dip" android:numColumns="3" android:gravity="center" android:background="#ff000000" /> </SlidingDrawer></RelativeLayout>
4. Code in grid. xml under layout in the res package:
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <ImageView android:id="@+id/image_view" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginBottom="5dip" /> <TextView android:id="@+id/text_view" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginBottom="15dip" /></LinearLayout>
5. Code in androidmanifest. xml:
<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.cn.daming" android:versionCode="1" android:versionName="1.0"> <uses-sdk android:minSdkVersion="8" /> <application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name=".SlidingDrawerMainActivity" android:label="@string/app_name" android:configChanges="orientation|locale"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application></manifest>
Note:
You can also set the vertical hide drawer mode and set Android: Orientation = "vertical" in slidingdrawer ".
See the following results:
Click the drop-down icon and click the interface after the pull up icon:
Modify the code in the main. xml file of layout under the res package:
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:id="@+id/text_view" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginTop="10dip" android:text="@string/hello" android:textSize="10pt" android:gravity="center" /> <SlidingDrawer android:id="@+id/sliding_drawer" android:layout_width="fill_parent" android:layout_height="fill_parent" android:handle="@+id/layout1" android:content="@+id/mycontent" android:orientation="vertical" > <LinearLayout android:id="@id/layout1" android:layout_width="fill_parent" android:layout_height="35px" android:gravity="center" android:background="#00000000" > <ImageView android:id="@+id/my_image" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/up1" /> </LinearLayout> <GridView android:id="@id/mycontent" android:layout_width="wrap_content" android:layout_height="wrap_content" android:paddingTop="20dip" android:numColumns="3" android:gravity="center" android:background="#ff000000" /> </SlidingDrawer></RelativeLayout>
Modify the code in the grid. xml file:
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <ImageView android:id="@+id/image_view" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginBottom="5dip" android:layout_marginLeft="27dip" /> <TextView android:id="@+id/text_view" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginBottom="15dip" android:layout_marginLeft="27dip" /></LinearLayout>
Download link for complete code: Http://download.csdn.net/detail/wdaming1986/3731750