Introduction to slidingdrawer in Android [Android Evolution]

Source: Internet
Author: User

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

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.