最近在学习游戏开发,在游戏中常常需要设置游戏的难度,在Android中我们可以使用RatingBar来实现。具体看下面的代码:

效果图如下:


package com.cloay.pt.ui;import java.io.FileNotFoundException;import java.io.IOException;import android.content.ContentResolver;import android.content.Intent;import android.content.SharedPreferences;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.net.Uri;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.ImageView;import android.widget.RatingBar;import android.widget.RatingBar.OnRatingBarChangeListener;import android.widget.TextView;import com.cloay.pt.BasicActivity;import com.cloay.pt.R;import com.cloay.pt.constants.Constant;import com.cloay.pt.utils.ImageUtil;/** * 游戏设置类,游戏难度等 * @author Cloay * 2011-12-23 * 下午05:21:41 */public class SettingsActivity extends BasicActivity{private SharedPreferences settings;  //保存设置private RatingBar ratingBar;private TextView defaultPicture;private TextView picture;private ImageView previewImage;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.settings);BasicActivity.allActivity.add(this);//初始化数据initData();}/** * 初始化数据 */private void initData() {settings = getSharedPreferences("settings", 0);ratingBar = (RatingBar) findViewById(R.id.rating);//游戏默认图片defaultPicture = (TextView) findViewById(R.id.def);//从图库中选择图片,自定义picture = (TextView) findViewById(R.id.picture);previewImage = (ImageView)findViewById(R.id.preview);if("".equals(settings.getString("picture", ""))) {previewImage.setImageResource(R.drawable.def);}else{previewImage.setImageBitmap(ImageUtil.getBitmapFromSDCard(settings.getString("picture", "")));}//设置难度选择监听ratingBar.setOnRatingBarChangeListener(new OnRatingBarChangeListener() {@Overridepublic void onRatingChanged(RatingBar ratingBar, float rating,boolean fromUser) {settings.edit().putInt("level", (int)rating).commit();   //保存用户设置后的游戏难度showToast(SettingsActivity.this, (int)rating);}});//设置图片选择监听defaultPicture.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {settings.edit().putString("picture", "").commit();previewImage.setImageResource(R.drawable.def);}});picture.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {Intent intent = new Intent();                  /* 开启Pictures画面Type设定为image */                  intent.setType("image/*");                  /* 使用Intent.ACTION_GET_CONTENT这个Action */                  intent.setAction(Intent.ACTION_GET_CONTENT);                 /* 取得相片后返回本画面 */                  startActivityForResult(intent, 1);}});}@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {if (resultCode == RESULT_OK) {              Uri uri = data.getData();              ContentResolver cr = this.getContentResolver();              try {                  Bitmap bitmap = BitmapFactory.decodeStream(cr.openInputStream(uri));                  try {saveBitmap("cloay", bitmap);} catch (IOException e) {e.printStackTrace();}settings.edit().putString("picture", Constant.picPath + "cloay.png").commit();previewImage.setImageBitmap(bitmap);            } catch (FileNotFoundException e) {              settings.edit().putString("picture", "").commit();            previewImage.setImageResource(R.drawable.def);            }          } super.onActivityResult(requestCode, resultCode, data);}}

通过设置setOnRatingBarChangeListener监听器来获取用户选择RatingBar的值,获取之后往往需要保存,通常使用SharedPrefence即可,也可选用SQLite等。SharedPrefence的使用详细请看: Android SharedPreferences的使用

说明:转载请注明出处!


更多相关文章

  1. Android(安卓)ListView几个比较有用的属性
  2. 解决ScrollView中填充内容上下会有阴影的问题
  3. Android(安卓)动画效果设置
  4. Android(安卓)Studio初步使用及HelloWorld详解
  5. ClassCastException android.view.viewgroup.$layoutParam
  6. Android(安卓)Telechips89xx背光控制流程
  7. Android: 设置wifi设备名
  8. Android之设置ListView数据显示的动画效果
  9. Android中density如何设置

随机推荐

  1. Android(安卓)Studio关于VectorDrawable
  2. (转发)Android:onNewIntent()
  3. android 打包报错
  4. MVP框架 – Ted Mosby的软件架构
  5. android捕获js中的dialog事件
  6. Android四种启动模式
  7. Android中strings.xml文件
  8. Android(安卓)蓝牙驱动 概要
  9. Android去標題時報錯:java.lang.IllegalSt
  10. 为什么要引入ContentProvider