8
특정 시간이 지나면 애니메이션 목록에서 이미지를 실행하려고하지만 사용자가 이미지를 선택할 수있는 곳에서 화면 상단에 갤러리를 추가했습니다.동시에 애니메이션 및 이미지 스위처 실행
int imgs[] =
{
R.drawable.mashad_one,
R.drawable.mashad_two,
R.drawable.mashad_three,
R.drawable.mashad_four,
R.drawable.mashad_five,
R.drawable.mashad_six,
R.drawable.mashad_seven,
};
int i=0,flag=0;
ImageSwitcher imgBus;
AnimationDrawable animation;
Handler mHandler = new Handler();
void func()
{
imgBus.setFactory(this);
}
@SuppressLint("NewApi") @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.dutyfree);
ActionBar bar = getActionBar();
bar.setBackgroundDrawable(new ColorDrawable(Color.parseColor("#FF6600"))); // Declare object of Utils class;
Gallery gallery = (Gallery) findViewById(R.id.gallery1);
gallery.setAdapter(new ImageAdapter(this));
gallery.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
if(i==0)
{
i++;
func();
}
flag=1;
imgBus.setImageResource(imgs[arg2]);
}
});
imgBus = (ImageSwitcher) findViewById(R.id.imageSwitcher1);
imgBus.setBackgroundResource(R.drawable.anim);
imgBus.setInAnimation(AnimationUtils.loadAnimation(this,
android.R.anim.fade_in));
imgBus.setOutAnimation(AnimationUtils.loadAnimation(this,
android.R.anim.fade_out));
animation = (AnimationDrawable) imgBus.getBackground();
animation.start();
new Thread(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
while (true) {
try {
Thread.sleep(5000);
mHandler.post(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
// Write your code here to update the UI.
if(flag==1){
animation.start();
}
}
});
} catch (Exception e) {
// TODO: handle exception
}
}
}
}).start();
}
public class ImageAdapter extends BaseAdapter {
private Context ctx;
public ImageAdapter(Context c) {
ctx = c;
}
public int getCount() {
return imgs.length;
}
public long getItemId(int arg0) {
return arg0;
}
public View getView(int arg0, View arg1, ViewGroup arg2) {
ImageView iView = new ImageView(ctx);
iView.setImageResource(imgs[arg0]);
iView.setScaleType(ImageView.ScaleType.FIT_XY);
iView.setLayoutParams(new Gallery.LayoutParams(200, 150));
return iView;
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return null;
}
}
public View makeView() {
ImageView iView = new ImageView(this);
iView.setScaleType(ImageView.ScaleType.FIT_CENTER);
iView.setLayoutParams(new ImageSwitcher.LayoutParams
(LayoutParams.MATCH_PARENT,LayoutParams.MATCH_PARENT));
iView.setBackgroundColor(0xFF000000);
return iView;
}
}
activty 애니메이션이 실행을 시작 시작할 때 문제이며, 이미지가 변경 유지하지만, 한 번 : 표시, 나는 다섯 개 seconds.My 코드 후 또 다시 애니메이션을 시작 유지합니다 스레드를 만든 것입니다 갤러리에서 이미지 중 하나를 누르면 애니메이션이 멈추고 다시 시작하지 않습니다. ,,,, 문제를 찾을 수 있도록 도와주세요.