android抽屉效果

来源:互联网 发布:淘宝怎么批量上传图片 编辑:程序博客网 时间:2024/05/16 06:04

SlidingDrawer类虽然已经不推荐使用了,但有时如果效果简单的话用用也无妨,反正我有有点怀念,主要是它使用简单,只能上下或者左右滑动,而且刚开始的时候,方向不能指定,

布局文件

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"  
    android:orientation="vertical"
    android:background="#000099">
    
    <SlidingDrawer
        android:id="@+id/slidingdrawer"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:content="@+id/content"
        android:handle="@+id/handle"
        android:orientation="vertical" >
        <ImageView
            android:id="@id/handle"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/lo19" >
        </ImageView>
        <LinearLayout
            android:id="@id/content"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="#008800">
            <TextView
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:text="隐藏的内容"/>
        </LinearLayout>
    </SlidingDrawer>
    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="bottom textView"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:gravity="center_vertical|center_horizontal"/>
</LinearLayout>

在主界面中不写什么代码就可以滑了,

如果要写一些方法,主要是下面几个方法

SlidingDrawer sd = (SlidingDrawer)findViewById(R.id.slidingdrawer); 
         
        sd.setOnDrawerOpenListener(new OnDrawerOpenListener(){ 
            public void onDrawerOpened() { 
                // TODO Auto-generated method stub 
            } 
        }); 
        sd.setOnDrawerCloseListener(new OnDrawerCloseListener(){ 
            public void onDrawerClosed() { 
                // TODO Auto-generated method stub 
            } 
        }); 
        sd.setOnDrawerScrollListener(new OnDrawerScrollListener(){ 
            public void onScrollEnded() { 
                // TODO Auto-generated method stub 
            } 
            public void onScrollStarted() { 
                // TODO Auto-generated method stub 
            }    
        });

下面这抽屉把手机上的应用程序的图标在抽屉中以缩小的图标来显示,这是转自网络的, 我觉得可能以后有用就收藏到此了,如有侵仅,还请告知

布局文件

<?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" >  
      
        <SlidingDrawer  
            android:id="@+id/sliding"  
            android:layout_width="match_parent"  
            android:layout_height="match_parent"  
            android:content="@+id/allApps"  
            android:handle="@+id/imageViewIcon"  
            android:orientation="vertical" >  
      
            <GridView  
                android:id="@+id/allApps"  
                android:layout_width="wrap_content"  
                android:layout_height="wrap_content"  
                android:background="@drawable/lo13"  
                android:columnWidth="60dp"  
                android:gravity="center"  
                android:horizontalSpacing="10dp"  
                android:numColumns="auto_fit"  
                android:padding="10dp"  
                android:stretchMode="columnWidth"  
                android:verticalSpacing="10dp" />  
      
            <ImageView  
                android:id="@+id/imageViewIcon"  
                android:layout_width="wrap_content"  
                android:layout_height="wrap_content"  
                android:src="@drawable/lo19" />  
        </SlidingDrawer>  
      
    </RelativeLayout>  

操作上面配置的文件的Activity类

package com.example.t;

import java.util.List;

import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.content.pm.ResolveInfo;
import android.view.Menu;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.GridView;
import android.widget.ImageView;
import android.widget.SlidingDrawer;
//这个类把所有应用程序的图标都缩小化了以抽屉的方式显示
public class MainActivity extends Activity {

    private GridView gv;  
    private SlidingDrawer sd;  
    private ImageView iv;  
    private List<ResolveInfo> apps;  
 
    /** Called when the activity is first created. */  
    @Override  
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);  
        setContentView(R.layout.main_2);  
        loadApps();  
        gv = (GridView) findViewById(R.id.allApps);  
        sd = (SlidingDrawer) findViewById(R.id.sliding);  
        iv = (ImageView) findViewById(R.id.imageViewIcon);  
        gv.setAdapter(new GridAdapter());  
        sd.setOnDrawerOpenListener(new SlidingDrawer.OnDrawerOpenListener()// 开抽屉  
        {  
            @Override  
            public void onDrawerOpened() {  
                iv.setImageResource(R.drawable.lo19);// 响应开抽屉事件  
                                                                // ,把图片设为向下的  
            }  
        });  
        sd.setOnDrawerCloseListener(new SlidingDrawer.OnDrawerCloseListener() {  
            @Override  
            public void onDrawerClosed() {  
                iv.setImageResource(R.drawable.lo13);// 响应关抽屉事件  
            }  
        });  
    }  
 
    private void loadApps(){
        Intent intent = new Intent(Intent.ACTION_MAIN, null);  
        intent.addCategory(Intent.CATEGORY_LAUNCHER);  
        apps = getPackageManager().queryIntentActivities(intent, 0);
    }
 
  public class GridAdapter extends BaseAdapter {
        
     public GridAdapter() {
        super();
    }

        public int getCount() {  
            // TODO Auto-generated method stub  
            return apps.size();  
        }  
 
        public Object getItem(int position) {  
            // TODO Auto-generated method stub  
            return apps.get(position);  
        }  
 
        public long getItemId(int position) {  
            // TODO Auto-generated method stub  
            return position;  
        }  
 
        public View getView(int position, View convertView, ViewGroup parent) {  
            // TODO Auto-generated method stub  
            ImageView imageView = null;  
            if (convertView == null) {  
                imageView = new ImageView(MainActivity.this);  
                imageView.setScaleType(ImageView.ScaleType.FIT_CENTER);  
                imageView.setLayoutParams(new GridView.LayoutParams(50, 50));  
            } else {  
                imageView = (ImageView) convertView;  
            }  
 
            ResolveInfo ri = apps.get(position);  
            imageView.setImageDrawable(ri.activityInfo  
                    .loadIcon(getPackageManager()));  
 
            return imageView;
        }
 }

    }


原创粉丝点击