2

ImageViewの配列を持つTableLayoutがあり、menuInflaterをクリックすると、5秒間表示されてから非表示になり、カウントダウンが開始されます。

public boolean onOptionsItemSelected(MenuItem item) {

super.onOptionsItemSelected(item);

switch (item.getItemId()){

case R.id.txt1:
    handler = new Handler (this);
                Worker w = new Worker (handler);
               Thread t = new Thread (w);
               t.start();
     return true;

  protected int [] imgIds = {
    R.id.img_1,R.id.img_2,R.id.img_3,R.id.img_4,R.id.img_5,R.id.img_6,
    R.id.img_7,R.id.img_8,R.id.img_9,R.id.img_10,R.id.img_11,R.id.img_12,
   };

public class Worker implements Runnable{

private Handler h;

public Worker (Handler h)
{
this.h = h;
}

@Override
public void run() {

for(int i=0; i<10; i++)
{
    imgIds.setsetVisibility(View.INVISIBLE)

    try{
        Thread.sleep(1000);
    }catch (InterruptedException e){
        e.printStackTrace();
    }
}
h.postDelayed(Worker,1000);
 }   
 }

次に、ImageViewを非表示にしてゲームを開始します。

このコードは間違っているので、誰かが私を助けることができれば。

4

2 に答える 2

6

フレーム アニメーションが役立ちます

次のスニペットがあなたを導きます。

package com.org.sampleproject;

import android.app.Activity;
import android.graphics.drawable.AnimationDrawable;
import android.os.Bundle;
import android.os.Handler;
import android.view.Menu;
import android.view.View;
import android.widget.ImageView;
import android.widget.Toast;

public class MainActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        AnimationDrawable animation = new AnimationDrawable();
        animation.addFrame(getResources().getDrawable(R.drawable.img1), 1000); //1 Sec
        animation.addFrame(getResources().getDrawable(R.drawable.img2), 1000); //1 Sec 
        animation.addFrame(getResources().getDrawable(R.drawable.img3), 1000); //1 Sec 
        animation.addFrame(getResources().getDrawable(R.drawable.img4), 1000); //1 Sec
        animation.addFrame(getResources().getDrawable(R.drawable.img5), 1000); //1 Sec
        animation.setOneShot(true);

        final ImageView imageAnim = (ImageView) findViewById(R.id.image);
        imageAnim.setBackgroundDrawable(animation);

        animation.start();

        new Handler().postDelayed(new Runnable() {

            @Override
            public void run() {
                imageAnim.setVisibility(View.INVISIBLE);

                //Perform Your Task Here 

            }
        }, animation.getNumberOfFrames() * 1000);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    }

}
于 2012-07-05T04:55:38.793 に答える