`

android游戏开发之选关画面

阅读更多

在游戏开发中,往往要提供选关的页面,选择关卡可以简单地使用listView,如果想效果好一点,可以选择 用gallery控件。Gallery控件的使用在api demo里面有很详尽的用法介绍,如果不想看api demo,下面有我精简了的代码:

程序的效果是可以拖动图片,单击选择。

 

首先在layout里面定义gallery控件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<TextView  
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/hello"
    />
<Gallery 
	android:id="@+id/Gallery01" 
	android:layout_width="fill_parent" 
	android:layout_height="wrap_content">
</Gallery>
</LinearLayout>

 

再定义Adapter,这个类是用来控制gallery的图片源等操作的。

package com.ray.test;

import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Gallery;
import android.widget.ImageView;

public class ImageAdapter extends BaseAdapter {
	private Context mContext; //define Context 

    private Integer[] mImageIds = { //picture source
            R.drawable.p1,
            R.drawable.p2,
            R.drawable.p3,
            R.drawable.p4,
            R.drawable.p5,
            R.drawable.p6,
            R.drawable.p7,
            R.drawable.p8,
    };

    public ImageAdapter(Context c) { //define ImageAdapter
        mContext = c;
    }

    //get the picture number
    public int getCount() { 
        return mImageIds.length;
    }
    
    public Object getItem(int position) {
        return position;
    }

    public long getItemId(int position) {
        return position;
    }

    public View getView(int position, View convertView, ViewGroup parent) {
        ImageView i = new ImageView(mContext);
        i.setImageResource(mImageIds[position]);//set resource for the imageView
        i.setLayoutParams(new Gallery.LayoutParams(192, 192));//layout
        i.setScaleType(ImageView.ScaleType.FIT_XY);//set scale type
        return i;
    }
}

 

最后是Activity调用:

package com.ray.test;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.Gallery;
import android.widget.Toast;
import android.widget.AdapterView.OnItemClickListener;

public class TestGallery extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        Gallery g = (Gallery) findViewById(R.id.Gallery01);//get Gallery component
        g.setAdapter(new ImageAdapter(this));//set image resource for gallery

        //add listener
        g.setOnItemClickListener(new OnItemClickListener() {
            public void onItemClick(AdapterView parent, View v, int position, long id) {
            	//just a test,u can start a game activity
                Toast.makeText(TestGallery.this, "" + position, Toast.LENGTH_SHORT).show();
            }
        });


    }
}

 

分享到:
评论
15 楼 javajdbc 2010-04-19  
效果不错 谢谢LZ分享。。。。 3QU
14 楼 smalllixin 2010-04-18  
偶也正在弄游戏呢~

这种方式选关也是不错的选择
13 楼 adamli007 2010-04-16  
楼上的问题了解了,现在想知道怎样把sdcard中的图片放入GridView中显示出来。
12 楼 adamli007 2010-04-16  
请问怎样把系统的图片显示在屏幕上?
如把/sdcard/DDMS下的图片或/data自定义目录下的图片
11 楼 wjb_forward 2010-04-07  
谢谢你,哈利波特
10 楼 sinye 2010-03-17  
谢谢楼主分享,在楼主这里的确能学到许多好东西!
9 楼 BarryWei 2009-12-27  
Gallery拖动的方向是不是只有横向拖动?可以垂直纵向拖动吗?
8 楼 sunnyboyi 2009-12-26  
下载下来了,试运行,效果杠杠的,谢谢楼主的分享!
7 楼 swcai 2009-09-27  
多谢楼主的文章。我更习惯使用listView再加imageview...好处是我可以加一些文字的注解和历史信息。Gallery的效果主要在drawable的设计是不是直观。
6 楼 ivay 2009-09-26  
在你的部落格确实能学到不少东西。 以后要常来学习。
5 楼 szgaea 2009-09-23  
哎,我对游戏方面总是不能理解,那些屏幕的x,y呀,感觉很难读懂,感谢您的分享!
4 楼 wtgoku 2009-09-23  
不错的东西~~~
3 楼 lordhong 2009-09-23  
不错, 谢谢分享 ^_^)Y
2 楼 raymondlueng 2009-09-22  
pure 写道
很不错,raymondlueng兄总是有惊喜。

谢谢,谢谢你的鼓励!
1 楼 pure 2009-09-22  
很不错,raymondlueng兄总是有惊喜。

相关推荐

    android选关画面的实现-原创

    在Android游戏开发中,设计一个选关画面是提升用户体验的重要环节。本文将深入探讨如何利用Gallery类来创建一个直观且互动性强的选关界面,并同时介绍如何集成背景音乐功能,为游戏增添更多沉浸感。 首先,让我们来...

    android 3d游戏开发教程

    在Android 3D游戏开发中,熟悉OpenGL ES的基本操作至关重要,包括但不限于: - **设置投影和视图矩阵**:这些矩阵决定了3D场景的观察角度和透视效果。 - **加载纹理和材质**:纹理映射是3D图形中的关键技术之一,...

    android推箱子游戏源码

    【推箱子游戏源码解析】 推箱子游戏是一种经典的益智游戏,玩家需要通过移动主角将箱子推到指定的位置。在Android平台上实现推箱子游戏,主要涉及...通过分析和学习这个源码,可以提升在Android游戏开发方面的能力。

    Android项目开发实战_益智类游戏-Wo!Water!_编程案例解析实例详解课程教程.pdf

    《Wo!Water!》是一款基于Android平台的益智类流体游戏,旨在提供一种结合现实与趣味的游戏体验。...学习开发此类游戏,不仅能够提升Android游戏开发能力,还能深入理解2D物理引擎的运用和游戏设计的方方面面。

    android版简单贪吃蛇小游戏代码

    在Android平台上,开发一款简单的贪吃蛇小游戏是一个经典的入门级项目,它可以帮助初学者了解基本的Android应用开发流程,以及一些关键的编程概念。在这个项目中,我们将关注以下几个核心知识点: 1. **Android ...

    android 雷电游戏

    【Android 雷电游戏开发详解】 在Android操作系统中,雷电游戏的实现涉及到了多个关键的技术点,包括游戏引擎的使用、图形渲染、物理模拟、用户交互以及性能优化等。下面将对这些核心知识点进行深入探讨。 1. **...

    基于Android的华容道游戏设计与实现.pdf

    在实现华容道游戏的过程中,首先要设计游戏的主要界面,包括选关界面和棋盘界面。选关界面采用组件分页方式来实现,允许用户左右滑动以查看不同的游戏关卡,并通过组件实现网格滚动显示各种开局。棋盘界面则是在一个...

    FloodIt:Android平台的Flood it游戏

    《FloodIt: Android平台的游戏开发解析》 FloodIt是一款深受玩家喜爱的色彩填充类游戏,其Android版本更是将这种简单却极具挑战性的玩法带到了移动设备上。本篇文章将深入探讨Flood It在Android平台上的实现,重点...

    银河恶魔城手游策划GDD.pdf

    游戏开发中采用版本号和修订人来管理文件版本,确保文档和游戏内容的持续更新和维护。 以上知识点总结了“银河恶魔城手游”策划和开发过程中的关键内容,包括游戏玩法、特点、技术要求、剧情梗概和操作界面等方面的...

    毕业设计飞机大战源码下载-plane:使用Cocos2d-x引擎c++语言制作的飞行射击类游戏。shootinggame!

    点击开始游戏进入选关界面,在此玩家可以选择自己想玩的关卡。进入游戏后游戏会检测玩家战机是否与敌机相撞、子弹是否击中敌人。当子弹打中敌人后,若敌人血量降为零,执行爆炸动画并增加积分。若主角与敌机发生碰撞...

    NatCorder - Video Recording API 1.7.3.unitypackage

    Unity 是一款广泛应用于游戏开发、虚拟现实(VR)、增强现实(AR)等领域的跨平台游戏引擎,它支持2D和3D图形,并提供了强大的脚本语言如C#来控制游戏逻辑。Unity3D是其3D版本,通常简称为Unity。 该插件的核心特性包括...

    unity3d 中文手册

    六、总结Unity3D是一个强大的游戏开发工具,通过理解和掌握上述知识点,开发者可以创建出丰富的3D游戏环境。界面的学习、资源管理、场景构建、动画制作和发布流程都是Unity3D开发的基础。随着经验的积累,你将能够...

Global site tag (gtag.js) - Google Analytics