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);
//相應(yīng)的點(diǎn)擊事件
gallery.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
Toast.makeText(MainActivity.this, "您點(diǎn)擊的是" + i, Toast.LENGTH_LONG).show();
}
});
}
}
xml里面寫Gallery屬性
<Gallery
android:id="@+id/gallery"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true" />
繼承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;
//設(shè)置要展示的圖片資源
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);
//設(shè)置寬高
image.setLayoutParams(new Gallery.LayoutParams(
ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
return image;
}
}
效果圖
image.png
安卓中1.5后加入了SlidingDrawer【隱藏式抽屜】惠猿,設(shè)計(jì)原理在你的UI布局有限的情況下悬而,放不下太多的控件的時(shí)候雳刺,可以考慮用這個(gè)隱藏式抽屜繁仁。用SlidingDrawer注意兩點(diǎn),一個(gè)是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={"家園衛(wèi)士","安裝包","游戲盒子",
"鏈接電腦","記事本","垃圾箱","流量管理","軟件修復(fù)","系統(tǒng)設(shè)置"
};
@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基礎(chǔ)適配器
gridView.setAdapter(adapter);//設(shè)置適配
slidingDrawer.setOnDrawerOpenListener(new SlidingDrawer.OnDrawerOpenListener() {
//設(shè)置打開抽屜的監(jiān)聽
public void onDrawerOpened() {
//設(shè)置小箭頭的方向
imageView.setImageResource(R.drawable.right1);
}
});
slidingDrawer.setOnDrawerCloseListener(new SlidingDrawer.OnDrawerCloseListener() {
//設(shè)置關(guān)閉抽屜監(jiān)聽
public void onDrawerClosed() {
imageView.setImageResource(R.drawable.left1);
}
});
}
}
基礎(chǔ)適配器
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;
}
}
主布局
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="${relativePackage}.${activityClass}" >
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="抽屜效果"
android:gravity="center"
android:textSize="20sp" />
<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="35dp"
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>
內(nèi)容控件xml
<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="80dp"
android:layout_height="80dp"
android:layout_gravity="center"
android:layout_marginBottom="5dip"
/>
<TextView
android:id="@+id/text_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="15dip"
android:layout_gravity="center"
android:textColor="#fff"
/>
</LinearLayout>
效果圖
image.png