آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

تغییرimageview (حل شد)

f-Dehghan  11 سال پیش  11 سال پیش
0 0

سلام.
ImageView دارم میخوام با کلیک اول تصویر اول رو نشون بده بعد از 300 میلی ثانیه تصویر دوم بشه سورسش و 400 میلی ثانیه بعد تصویر سوم سورس ایمیجش بشه. ولی نمیشه:

      tasvir.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
tasvir.setImageResource(R.drawable.tasvir2);

thread = new Thread(new Runnable() {

@Override
public void run() {
handler.post(new Runnable() {

@Override
public void run() {
try {
thread.sleep(300);
tasvir.setImageResource(R.drawable.tasvir3);

}
catch (InterruptedException e) {
e.printStackTrace();
}

}
});

handler.post(new Runnable() {

@Override
public void run() {
try {
thread.sleep(400);
tasvir.setImageResource(R.drawable.tasvir1);

}
catch (InterruptedException e) {
e.printStackTrace();
}

}
});

}

});
thread.start();
}
});

}
+1 0
خطا میده؟ از Handler و متد postDelayed که تو ساخت Splash معمولاً به کار برده میشه استفاده کنید بهره. نیازه به Thread نیست. (11 سال پیش)
0 0
خطا نمیده .ولی من میخوام سه تا تصویر با فاصله بیاد ولی دوتا میاد یکیشو نشون نمیده (11 سال پیش)
 برای این سوال 2 پاسخ وجود دارد.
پاسخ به سوال 
f-Dehghan  11 سال پیش
0 0

با handler این طوری نوشتم ولی بازهم دو تا تصویرو نشون میده 2و3 میخوام آخرین تصویر 1 بشه.بعد دوباره کلیک که میشه تصویر 2 بعد از 300میلی ثانیه تصویر 3 و بعد از 300 میلی تصویر 1 رو نشون بده.

         @Override
public void onClick(View v) {
tasvir.setImageResource(R.drawable.tasvir2);
getImageToSet();

}
});

}


private void getImageToSet() {
handler.postDelayed(new Runnable() {

@Override
public void run() {
tasvir.setImageResource(R.drawable.tasvir3);
}
}, 300);
handler.postDelayed(new Runnable() {

@Override
public void run() {
tasvir.setImageResource(R.drawable.tasvir1);
}
}, 300);
}
+1 0
تصویر اولی رو همینجور خالی که نوشتید درسته، تصویر دوم هم درسته، برای تصویر سوم handler.postDelayed رو داخل handler.postDelayed تصویر دوم بزارید. (11 سال پیش)
پاسخ به سوال 
f-Dehghan  11 سال پیش
0 0

این طوری درست شد .با تشکر از Spirit

             public void onClick(View v) {
tasvir.setImageResource(R.drawable.tasvir2);
handler.postDelayed(tasvire3, 300);
handler.postDelayed(tasvire1, 600);

}
});

}

Runnable tasvire3 = new Runnable() {

@Override
public void run() {
tasvir.setImageResource(R.drawable.tasvir3);
}
};
Runnable tasvire1 = new Runnable() {

@Override
public void run() {
tasvir.setImageResource(R.drawable.tasvir1);
}
};

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .