android抽屉效果

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;
}
}

}

标签