我在測驗應用程序中有一個活動,我想每5秒更改其背景。我如何隨機化我的可繪製文件夾中的圖像,並將它們作爲我活動的背景圖像。注意:這只是一項活動。在Android中隨機更改背景圖像
任何幫助將不勝感激。謝謝。
我在測驗應用程序中有一個活動,我想每5秒更改其背景。我如何隨機化我的可繪製文件夾中的圖像,並將它們作爲我活動的背景圖像。注意:這只是一項活動。在Android中隨機更改背景圖像
任何幫助將不勝感激。謝謝。
使用Handler
或Timertask
爲每5秒改變活動背景:
public static int count=0;
int[] drawablearray=new int[]{R.drawable.One,R.drawable.Two,..};
new Handler().postDelayed(new Runnable() {
public void run() {
if(count<drawablearray.length){
Your_Current_Activity.this.getWindow().
setBackgroundDrawableResource(drawablearray[count]);
count++; //<<< increment counter here
}
else{
// reset counter here
count=0;
}
}
}, 5000);
您可以創建可繪製的數組是這樣的:
<array name="myImages">
<item>@drawable/img1</item>
<item>@drawable/img2</item>
<item>@drawable/img3</item>
</array>
你可以讓他們像這樣:
Resources res = getResources();
TypedArray myImages = res.obtainTypedArray(R.array.myImages);
現在創建隨機數字:
Random r = new Random(myImages.length())
int i = r.nextInt();
Drawable drawable = icons.getDrawable(i);
現在每隔5秒將它們設置爲背景(如ρяσѕρєяs示例中所示)。
public class Test extends Activity{
//instantiate a handler object
private Handler imageHandler = new Handler();
//array containing drawables ids
int[] myarray = new int[]{R.drawable.image1,.....};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//add a runnable to the message queue
imageHandler.post(handle);
}
private final Runnable handle = new Runnable(){
public void run(){
try {
Random r = new Random();
int i = r.nextInt(myarray.length);
Test.this.getWindow().setBackgroundDrawableResource(myarray[i]);
imageHandler.postDelayed(this, 5000);
}
catch (Exception e) {
Log.d("Test", e.toString());
}
}
};
}
我應該把這段代碼放到我的.java文件中,是否與我的xml活動相關聯? – Sam
@Sam:將此代碼放在活動的活動(在.java活動類中) –