ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

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

2021-05-20 07:06:50  阅读:158  来源: 互联网

标签:界面设计 Button 配置 private 2048 import android btn builder


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

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



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

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;
	}
    }
}

以上

标签:界面设计,Button,配置,private,2048,import,android,btn,builder
来源: https://blog.51cto.com/u_9894631/2790727

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有