Android的画廊到网格样式菜单 [英] android gallery into grid style menu
问题描述
大家好,请帮我了关于在Android的菜单。我想使这个画廊为我的应用程序格菜单。请指导我怎么可以把图像的名义下,如果爱点击iClick特定的图像新的活动应该会打开,并在菜单上的按钮,最后点击带我回到主屏幕
下面是图片
下面是code
进口android.app.Activity;
进口android.content.Context;
进口android.os.Bundle;
进口android.view.View;
进口android.view.ViewGroup;
进口android.widget.AdapterView;
进口android.widget.BaseAdapter;
进口android.widget.GridView;
进口android.widget.ImageView;
进口android.widget.Toast;
进口android.widget.AdapterView.OnItemClickListener;
公共类DisplayViewsExample扩展活动
{
// ---图像显示---
整数[] imageIDs = {
R.drawable.pic1,
R.drawable.pic2,
R.drawable.pic3,
R.drawable.pic4,
R.drawable.pic5,
R.drawable.pic6,
R.drawable.pic7
};
@覆盖
公共无效的onCreate(包savedInstanceState)
{
super.onCreate(savedInstanceState);
的setContentView(R.layout.displayview);
GridView控件的GridView =(GridView控件)findViewById(R.id.gridview);
gridView.setAdapter(新ImageAdapter(本));
gridView.setOnItemClickListener(新OnItemClickListener()
{
公共无效onItemClick(适配器视图父,
视图V,INT位置,长ID)
{
Toast.makeText(getBaseContext(),
PIC+(位置+ 1)+选择,
Toast.LENGTH_SHORT).show();
}
});
}
公共类ImageAdapter扩展了BaseAdapter
{
私人上下文的背景下;
公共ImageAdapter(上下文C)
{
上下文= C;
}
// ---返回图像的数量---
公众诠释getCount将(){
返回imageIDs.length;
}
// ---返回一个项目的ID ---
公共对象的getItem(INT位置){
返回的位置;
}
众长getItemId(INT位置){
返回的位置;
}
// ---返回一个ImageView的看法---
公共查看getView(INT位置,查看convertView,父母的ViewGroup)
{
ImageView的ImageView的;
如果(convertView == NULL){
ImageView的=新ImageView的(上下文);
imageView.setLayoutParams(新GridView.LayoutParams(85,85));
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
imageView.setPadding(5,5,5,5);
} 其他 {
ImageView的=(ImageView的)convertView;
}
imageView.setImageResource(imageIDs [位置]);
返回ImageView的;
}
}
}
下面是XML
< XML版本=1.0编码=UTF-8&GT?;
< GridView中的xmlns:机器人=http://schemas.android.com/apk/res/android
机器人:ID =@ + ID / GridView控件
机器人:layout_width =FILL_PARENT
机器人:layout_height =FILL_PARENT
机器人:为numColumns =auto_fit
机器人:verticalSpacing =10dp
机器人:horizontalSpacing =10dp
机器人:columnWidth中=90dp
机器人:stretchMode =columnWidth中
机器人:重力=中心
/>
您需要使用自定义适配器,而不是 ImageAdapter
,并添加垂直的LinearLayout
与图像和标签。退房 BaseAdapter
API: http://developer.android.com/reference/android/widget/BaseAdapter.html
有关单击事件,使用 OnItemClickAdapter
:http://developer.android.com/reference/android/widget/AdapterView.OnItemClickListener.html
Hello everyone please help me out regarding menu in android . i want to make this gallery as grid menu for my application . please guide me how i can put the name under the images and if iclick on the particular image new activity should open and at last clicking on the menu button bring me back to main screen
here is the image
Here is the code
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.GridView;
import android.widget.ImageView;
import android.widget.Toast;
import android.widget.AdapterView.OnItemClickListener;
public class DisplayViewsExample extends Activity
{
//---the images to display---
Integer[] imageIDs = {
R.drawable.pic1,
R.drawable.pic2,
R.drawable.pic3,
R.drawable.pic4,
R.drawable.pic5,
R.drawable.pic6,
R.drawable.pic7
};
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.displayview);
GridView gridView = (GridView) findViewById(R.id.gridview);
gridView.setAdapter(new ImageAdapter(this));
gridView.setOnItemClickListener(new OnItemClickListener()
{
public void onItemClick(AdapterView parent,
View v, int position, long id)
{
Toast.makeText(getBaseContext(),
"pic" + (position + 1) + " selected",
Toast.LENGTH_SHORT).show();
}
});
}
public class ImageAdapter extends BaseAdapter
{
private Context context;
public ImageAdapter(Context c)
{
context = c;
}
//---returns the number of images---
public int getCount() {
return imageIDs.length;
}
//---returns the ID of an item---
public Object getItem(int position) {
return position;
}
public long getItemId(int position) {
return position;
}
//---returns an ImageView view---
public View getView(int position, View convertView, ViewGroup parent)
{
ImageView imageView;
if (convertView == null) {
imageView = new ImageView(context);
imageView.setLayoutParams(new GridView.LayoutParams(85, 85));
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
imageView.setPadding(5, 5, 5, 5);
} else {
imageView = (ImageView) convertView;
}
imageView.setImageResource(imageIDs[position]);
return imageView;
}
}
}
here is the xml
<?xml version="1.0" encoding="utf-8"?>
<GridView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/gridview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:numColumns="auto_fit"
android:verticalSpacing="10dp"
android:horizontalSpacing="10dp"
android:columnWidth="90dp"
android:stretchMode="columnWidth"
android:gravity="center"
/>
You need to use a custom adapter instead of the ImageAdapter
, and add a vertical LinearLayout
with the image and the label. Check out the BaseAdapter
api: http://developer.android.com/reference/android/widget/BaseAdapter.html
For the click events, use the OnItemClickAdapter
: http://developer.android.com/reference/android/widget/AdapterView.OnItemClickListener.html
这篇关于Android的画廊到网格样式菜单的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!