下面,我已經得到了Java和XML代碼,基本上我想點擊一個固定的按鈕,並在屏幕上的第二個按鈕跳躍在任意點將按鈕的位置設置爲屏幕上的隨機點? - Android電子
XML解釋: 所以,我有一個有兩個按鈕的相對佈局......其中一個是固定在屏幕的底部......我想隨機設置另一個的位置。
屏幕打開,點擊固定按鈕...另一個按鈕的位置應隨機更改。
說我再次點擊固定按鈕,然後agin,另一個按鈕應該隨機跳轉。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".Rrand" >
<Button
android:id="@+id/rbb1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:text="Button" />
<Button
android:id="@+id/bss"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:onClick="aa"
android:text="Button" />
</RelativeLayout>
JAVA解釋 在這裏,我已經得到了固定按鈕的OnClick功能。
►b=這是應該跳來跳去
首先的按鈕,我們得到的屏幕尺寸,然後使用的LayoutParams,利用隨機函數設置按鈕的位置。用於X
public void Clicky(View v) {
b = (Button) findViewById(R.id.rbb1);
///Getting the Screen dimensions for API 1+
LayoutParams params = (LayoutParams) b.getLayoutParams();
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
///Setting the buttons paramaters, again for API 1+
params.leftMargin = b.getWidth()
+ new Random().nextInt(metrics.widthPixels - b.getWidth());
params.topMargin = b.getHeight()
+ new Random().nextInt(metrics.heightPixels - b.getHeight());
b.setLayoutParams(params);
}
隨機函數座標:
b.getWidth()+新的隨機()nextInt(metrics.widthPixels - b.getWidth());。
最小值= b.getWidth()。
因此,在理論上,按鈕應該永遠不會出現在屏幕上。
在爲nextInt的參數,我用[屏幕寬度 - 按鈕寬度] ...所以,從理論上講,它不應該走出去,從對方太屏幕...
問題 但它確實如此。大約一半時間,按鈕甚至不會出現在屏幕上......問題必須出現在隨機函數中(我認爲是這樣)......我只是希望它出現在屏幕上的隨機點上。
我認爲這個問題很簡單的邏輯,因爲我有我需要的所有功能..
這不起作用 ►Setting上的按鈕和相對Layour的餘量。 ►從隨機函數中刪除所有按鈕尺寸參數。
也就是說,使用:
新的隨機()nextInt(metrics.widthPixels)
所以,我怎麼拿錯?
都能跟得上! ...仍然不起作用(儘管它在屏幕上出現大約80%的時間......) – Zenis
如果您從XML文件中的RelativeLayout中移除填充項,那麼該怎麼辦? – MalaKa
沒關係!我得到它的工作....雜亂地與我在Random()中減去多少......以及我在外面添加了多少......:是的,事實證明,填充導致它在相撞時不可見:-) – Zenis