этот сайт является лучшим, его помощь мне много ... Я новичок в создании Android-аппликации. Это мой первый раз, когда я задаю вопрос здесь. Мой вопрос заключается в том, как отобразить текстовое изображение всего за 5 секунд и заставить его исчезнуть. Когда я искал, я нашел несколько кодов, но я не знал, как его использовать, или, может быть, я используйте его не так. Так кто может дать мне очень простой пример, как это сделать? я действительно ценю вашу помощь ...... >> (Я не хочу, чтобы текст исчезнет, я хочу, чтобы отверстие TextView исчезнуть)Как отобразить текстовое изображение в течение нескольких секунд, а затем сделать его невидимым?
ответ
Один из способов будет использовать CountDownTimer, если вы хотите, чтобы таймер показать
public void onCreate(...){
...
timer = new MyCountDown(5000, 1000);
}
private class MyCountDown extends CountDownTimer
{
long duration, interval;
public MyCountDown(long millisInFuture, long countDownInterval) {
super(millisInFuture, countDownInterval);
// TODO Auto-generated constructor stub
start();
}
@Override
public void onFinish() {
textView1.setVisibility(View.INVISIBLE);
}
@Override
public void onTick(long duration) {
// could set text for a timer here
}
}
Вы также можете использовать TimerTask.
Here is a SO answer с хорошим примером TimerTask
Существуют также различные другие способы. Вы можете осуществлять поиск через Docs или SO, чтобы решить, какие наилучшим образом соответствует вашим потребностям
Редактировать с TimerTask
например
Timer t = new Timer(false);
t.schedule(new TimerTask() {
@Override
public void run() {
runOnUiThread(new Runnable() {
public void run() {
txt.setVisibility(View.INVISIBLE);
}
});
}
}, 5000);
Спасибо вам большое. Мне нравится ваш код его простой –
Использование AsyncTask:
new AsyncTask<Void, Void, Void>()
{
protected Void doInBackground(Void... params)
{
Thread.sleep(5000); // sleep 5 seconds
}
protected void onPostExecute (Void result)
{
// fade out view nicely
AlphaAnimation alphaAnim = new AlphaAnimation(1.0f,0.0f);
alphaAnim.setDuration(400);
alphaAnim.setAnimationListener(new AnimationListener()
{
public void onAnimationEnd(Animation animation)
{
// make invisible when animation completes, you could also remove the view from the layout
myTextView.setVisibility(View.INVISIBLE);
}
});
myTextView.startAnimation(alphaAnim);
}
}.execute();
Или, еще лучше просто использовать анимацию:
редактируется (благодаря @pkk по предложению):
// fade out view nicely after 5 seconds
AlphaAnimation alphaAnim = new AlphaAnimation(1.0f,0.0f);
alphaAnim.setStartOffset(5000); // start in 5 seconds
alphaAnim.setDuration(400);
alphaAnim.setAnimationListener(new AnimationListener()
{
public void onAnimationEnd(Animation animation)
{
// make invisible when animation completes, you could also remove the view from the layout
myTextView.setVisibility(View.INVISIBLE);
}
});
myTextView.setAnimation(alphaAnim);
final TextView textView = new TextView(this);
// add textView on some Layout
textView.setText("Text or smth. from resource");
CountDownTimer timer = new CountDownTimer(5000, 1000) {
@Override
public void onTick(long millisUntilFinished) {
}
@Override
public void onFinish() {
textView .setVisibility(View.INVISIBLE); //(or GONE)
}
}.start();
Спасибо вам большое, также я использую этот код и его работу –
Вы можете использовать Handler и Runnable, чтобы сделать это.
public class MainActivity extends Activity {
private Handler h;
TextView txt;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
txt=(TextView)findViewById(R.id.txt);
Runnable r=new Runnable(){
@Override
public void run() {
// TODO Auto-generated method stub
Log.e("bf", "fd");
h.postDelayed(this, 500);
if (txt.isShown()){
txt.setVisibility(View.INVISIBLE);
}
else{
txt.setVisibility(View.VISIBLE);
}
}
};
h=new Handler();
h.post(r);
}
}
что я могу сказать ... спасибо всем за ваш помощь ^^ –
Вы можете использовать AsyncTask для удаления TextView из макета. Может быть, опубликовать код, который вы пробовали, и описать, как он терпит неудачу? – DevOfZot
Если вы хотите показать Пользователю какую-либо информацию, такую как «foobar deleted» или тому подобное, вы можете использовать класс «Toast». – Ridcully
TextView txt = (TextView) findViewById (R.id.textView3); \t TimerTask задача = новый TimerTask() { \t @Override \t общественности недействительным запуска() { \t txt.setVisibility (View.INVISIBLE); \t} \t}; \t Таймер таймера = новый таймер(); \t timer.schedule (задача, 5000); \t Когда я пишу этот код через 5 секунд, приложение останавливается .. вы знаете этот messege «навсегда приложение как остановленное» >> Я ненавижу его .. Я думаю, что я сделал что-то неправильно –