首页 > 其他 > 详细

我也来开发2048之配置界面设计

时间:2014-04-21 05:53:34      阅读:495      评论:0      收藏:0      [点我收藏+]

我们的程序当然不像现在市面上的2048那样死板,一辈子4X4的面板,现在的人,讲究的就是随心所欲,所有的东西都在我的掌控中,这才爽。

所以我们的程序也得有个配置界面,国际惯例,上图:

bubuko.com,布布扣


这个配置界面主要完成以下几个功能:

1、可配置游戏面板的维数,即4X4,5X5,6X6,其实继续写下去也是可以的,但是,欲望也是要有限度的啊,差不多就够了

2、要达到的目标,你可以选择到1024就爽了呢,还是2048才爽,还是4096才爽,其实也是可以一直写下去的,老规矩,不要把自己逼的太紧了,差不多就行了,虐自己何必呢

3、Contact Me,给我的博客打个广告啦

配置功能,基本写入SharedPreferences,这个因为大家使用都比较多了,就不详细说了

下面是源码:

package com.xys.game2048.activity;

import com.xys.game2048.R;
import com.xys.game2048.config.Config;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class ConfigPreference extends Activity implements OnClickListener {

    private Button btnGameLines;

    private Button btnGoal;

    private Button btnBack;

    private Button btnDone;

    private String[] gameLinesList;

    private String[] gameGoalList;

    private AlertDialog.Builder builder;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
	super.onCreate(savedInstanceState);
	setContentView(R.layout.config_preference);
	initView();
    }

    private void initView() {
	btnGameLines = (Button) findViewById(R.id.btn_gamelines);
	btnGoal = (Button) findViewById(R.id.btn_goal);
	btnBack = (Button) findViewById(R.id.btn_back);
	btnDone = (Button) findViewById(R.id.btn_done);
	btnGameLines.setText("" + Config.sp.getInt(Config.KEY_GameLines, 4));
	btnGoal.setText("" + Config.sp.getInt(Config.KEY_GameGoal, 2048));
	btnGameLines.setOnClickListener(this);
	btnGoal.setOnClickListener(this);
	btnBack.setOnClickListener(this);
	btnDone.setOnClickListener(this);
	gameLinesList = new String[] { "4", "5", "6" };
	gameGoalList = new String[] { "1024", "2048", "4096" };
    }

    private void saveConfig() {
	Editor editor = Config.sp.edit();
	editor.putInt(Config.KEY_GameLines, Integer.parseInt(btnGameLines.getText().toString()));
	editor.putInt(Config.KEY_GameGoal, Integer.parseInt(btnGoal.getText().toString()));
	editor.commit();
    }

    @Override
    public void onClick(View v) {
	switch (v.getId()) {
	case R.id.btn_gamelines:
	    builder = new AlertDialog.Builder(this);
	    builder.setTitle("choose the lines of the game");
	    builder.setItems(gameLinesList, new DialogInterface.OnClickListener() {

		@Override
		public void onClick(DialogInterface dialog, int which) {
		    btnGameLines.setText(gameLinesList[which]);
		}
	    });
	    builder.create().show();
	    break;
	case R.id.btn_goal:
	    builder = new AlertDialog.Builder(this);
	    builder.setTitle("choose the goal of the game");
	    builder.setItems(gameGoalList, new DialogInterface.OnClickListener() {

		@Override
		public void onClick(DialogInterface dialog, int which) {
		    btnGoal.setText(gameGoalList[which]);
		}
	    });
	    builder.create().show();
	    break;
	case R.id.btn_back:
	    this.finish();
	    break;
	case R.id.btn_done:
	    saveConfig();
	    setResult(RESULT_OK);
	    this.finish();
	    break;
	default:
	    break;
	}
    }
}

以上

我也来开发2048之配置界面设计,布布扣,bubuko.com

我也来开发2048之配置界面设计

原文:http://blog.csdn.net/eclipsexys/article/details/24200983

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!