基本上我正在创建一个应用程序,其中有一个球在屏幕上,球的大小由此代码确定
private static final float sBallDiameter = 0.011f;
有什么方法可以为用户创建菜单系统,例如像这里显示的弹出菜单
http://i.stack.imgur.com/WsHJX.png
这会改变球的大小,例如在上面的菜单上显示地图,交通,街景等等 - 我可以使用小,中,大
小,将sBallDiameter
更改为0.009f
并将其大大改为0.018f
我希望你明白我的意思,但是如果有人能帮助我创建这个菜单类型的东西那就太棒了!
**UPDATE :**
这是当前的菜单
private static final int Small= 1;
public boolean onCreateOptionsMenu(Menu menu) {
((Activity) menu).onCreateOptionsMenu(menu);
menu.add(0, Small, 0, "Small");
return true;
}
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case Small:
// here i want it to change the size down to something like 0.009f
return true;
}
return false;
}
public float sBallDiameter = 0.013f;
基本上 - 我想要做的是在选择“小”的情况下这样做 - 它会减小“sBallDiameter”的大小
答案 0 :(得分:0)
使用枚举而不是固定大小
public Enum BallSize{
SMALL(0.09f),MEDIUM(0.11f),LARGE(0.018f);
BallSize(float size)
{
this.size=size;
}
private final float size;
}
用户更改菜单后,将菜单项与Ballsize
进行比较答案 1 :(得分:0)
以下是创建菜单的方法:Creating Menus。
在res / menu / ball_menu.xml文件中定义菜单:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/menu_small"
android:icon="@drawable/ic_menu_small"
android:title="@string/small" />
</menu>
然后在你的活动中:
private static final float SMALL_SIZE = 0.1f;
private static final float BIG_SIZE = 0.3f;
private float mBallSize = SMALL_SIZE;
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.ball_menu, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle item selection
switch (item.getItemId()) {
case R.id.menu_small:
setBallSize(SMALL_SIZE);
default:
return super.onOptionsItemSelected(item);
}
}
private void setBallSize(float size) {
this.mBallSize = size;
}