大家好我正在做一个游戏,你必须在一个按钮上连续点击10次,每次点击都会出现在随机位置。因此,我需要找到设备的高度和宽度。我将尝试为Android做这件事,因为我用Google搜索完全不同的代码。所以我会这样做:
public static int ScreenHeight { get; set; }
public static int ScreenWidth { get; set; }
App.ScreenHeight = (int)(Resources.DisplayMetrics.HeightPixels / Resources.DisplayMetrics.Density);
App.ScreenWidth = (int)(Resources.DisplayMetrics.WidthPixels / Resources.DisplayMetrics.Density);
所以在这里我需要知道应用程序必须在那里? Android Xamarin中的表单名称或布局名称或项目的应用程序名称。我需要帮助的下一件事是给我生成的随机位置的按钮位置我google了很多,所以这取决于我用来生成位置的方法。 :
Random xLoc = new Random();
Random yLoc = new Random();
int realXLoc;
int realYLoc;
realXLoc = xLoc.Next(1, ScreenWidth);
realYLoc = xLoc.Next(1, ScreenHeight);
基本上我要问的是一段将我的想法转化为现实的代码。真诚的Rectinho。
答案 0 :(得分:0)
您似乎没有获得正确的ScreenHeight和ScreenWidth。您可以尝试使用DisplayMetrics
类。
例如:
public class MainActivity : AppCompatActivity
{
int ScreenHeight;
int ScreenWidth;
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
// Set our view from the "main" layout resource
SetContentView(Resource.Layout.activity_main);
Button button = FindViewById<Button>(Resource.Id.button1);
button.Click += Button_Click;
DisplayMetrics displayMetrics = new DisplayMetrics();
WindowManager.DefaultDisplay.GetMetrics(displayMetrics);
ScreenHeight = displayMetrics.HeightPixels;
ScreenWidth = displayMetrics.WidthPixels;
}
private void Button_Click(object sender, System.EventArgs e)
{
Random xLoc = new Random();
Random yLoc = new Random();
int realXLoc;
int realYLoc;
Button button = sender as Button;
realXLoc = xLoc.Next(1, ScreenWidth- button.Width);
realYLoc = xLoc.Next(1, ScreenHeight - button.Height);
button.SetX(realXLoc);
button.SetY(realYLoc);
}
}