Gallery控件用于灵活展示图片)过期
java:
package com.example.gallerytext;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.Gallery;
import android.widget.Toast;
public class MainActivity extends Activity {
Gallery gallery;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
gallery=(Gallery) findViewById(R.id.gallery);
GalleryAdapter galleryAdapter = new GalleryAdapter(MainActivity.this);
gallery.setAdapter(galleryAdapter);
//相应的点击事件
gallery.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView> adapterView, View view, int i, long l) {
Toast.makeText(MainActivity.this, "您点击的是" + i, Toast.LENGTH_LONG).show();
}
});
}
}
xml里面写Gallery属性
继承BaseAdapter适配器
package com.example.gallerytext;
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Gallery;
import android.widget.ImageView;
/**
* Created by ZWH on 2016/5/16.
*/
public class GalleryAdapter extends BaseAdapter {
private Context mContext;
//设置要展示的图片资源
int[] images = {R.drawable.ic_launcher,R.drawable.f1,R.drawable.f2,R.drawable.f3,R.drawable.f4,R.drawable.f5,R.drawable.f6,R.drawable.f7,R.drawable.f8,R.drawable.f9,R.drawable.f10,};
public GalleryAdapter(Context context) {
this.mContext = context;
}
@Override
public int getCount() {
return images.length;
}
@Override
public Object getItem(int i) {
return i;
}
@Override
public long getItemId(int i) {
return i;
}
@Override
public View getView(int i, View view, ViewGroup viewGroup) {
//在此最好判断一下view是否为空
ImageView image = new ImageView(mContext);
image.setImageResource(images[i]);
image.setAdjustViewBounds(true);
//设置宽高
image.setLayoutParams(new Gallery.LayoutParams(
ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
return image;
}
}
效果图
安卓中1.5后加入了SlidingDrawer【隐藏式抽屉】,设计原理在你的UI布局有限的情况下,放不下太多的控件的时候,可以考虑用这个隐藏式抽屉。用SlidingDrawer注意两点,一个是android:handle(委托要展开的图片加载Layout配置) 和android:content(要展开的Layout Content):
主java里打
package com.example.slid;
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 MainActivity extends Activity {
private GridView gridView;
private SlidingDrawer slidingDrawer;
private ImageView imageView;
private int[] icons={
R.drawable.widget01, R.drawable.widget02,
R.drawable.widget03, R.drawable.widget04,
R.drawable.widget05, R.drawable.widget06,
R.drawable.widget07, R.drawable.widget08,
R.drawable.widget09,
};
private String[] items={"家园卫士","安装包","游戏盒子",
"链接电脑","记事本","垃圾箱","流量管理","软件修复","系统设置"
};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_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);//继承了BaseAdapter基础适配器
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);
}
});
}
}
基础适配器
package com.example.slid;
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) {
Shuju shuju=null;
if(convertView==null){
LayoutInflater layoutInflater = LayoutInflater.from(context);
convertView = (View)layoutInflater .inflate(R.layout.wode, null);
shuju=new Shuju();
shuju.imageView = (ImageView)convertView.findViewById(R.id.image_view);
shuju.textview = (TextView)convertView.findViewById(R.id.text_view);
convertView.setTag(shuju);
}else{
shuju= (Shuju) convertView.getTag();
}
//第二种加载布局方式
shuju.imageView.setImageResource(icons[position]);
shuju.textview.setText(items[position]);
return convertView;
}
class Shuju{
TextView textview;
ImageView imageView;
}
}
主布局
内容控件xml