Android的画廊到网格样式菜单 [英] android gallery into grid style menu

查看:92
本文介绍了Android的画廊到网格样式菜单的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

大家好,请帮我了关于在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:机器人=htt​​p://schemas.android.com/apk/res/android
    机器人:ID =@ + ID / GridView控件
    机器人:layout_width =FILL_PARENT
    机器人:layout_height =FILL_PARENT
    机器人:为numColumns =auto_fit
    机器人:verticalSpacing =10dp
    机器人:horizo​​ntalSpacing =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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆