2012-02-19 5 views
0

Я использую AsyncTask, чтобы получить данные с сервера и хочу показать экран во время загрузки, как это:Android: Показать экран при загрузке

private class GetListTask extends AsyncTask { 
    protected void onPreExecute() { 
      Intent intent = new Intent(); 
       intent.setClass(Start.this, Wait.class); 
       startActivity(intent); 
    } 

    protected Bitmap doInBackground(Object... args) { 

// здесь я получить данные с сервера

 d = getImageFromURL(Start.valuesArray[Integer.parseInt(Value)][7]); 
     Bitmap bitmap = ((BitmapDrawable) d).getBitmap(); 
     double ratio = (double) bitmap.getWidth()/(double) bitmap.getHeight(); 
     Bitmap scaled = Bitmap.createScaledBitmap(bitmap, width, (int) (width/ratio), true); 
     return scaled; 
    } 

    protected void onPostExecute(Object objResult) { 
     if (objResult != null && objResult instanceof Bitmap) { 
      Bitmap result = (Bitmap) objResult; 

      im.setImageBitmap(result); 
     } 
    } 
} 

Теперь, in onPostExecute() Мне нужно скрыть этот экран «Подождите», но как это сделать? Спасибо за помощь!

+0

Выполняете ли вы какую-либо работу в 'Деятельности', которую вы запускаете в' onPreExcute() '? Или это просто образ? – Luksprog

+0

его просто изображение. – user934779

ответ

1

вместо того, чтобы начать другую деятельность вы можете показать изображение в PopupDialog и закрыть его в onPostExecute

+0

спасибо, я сделаю это! – user934779

1

Использовать этот макет вместо ...

<?xml version="1.0" encoding="utf-8"?> 
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" > 

    <!-- Your actual layout. width & height fill_parent --> 

    <ImageView 
     android:id="@+id/wait_image" 
     android:layout_width="fill_parent" 
     android:visibility="gone" 
     android:layout_height="fill_parent" 
     android:src="@drawable/wait_screen" 
    /> 
</FrameLayout> 

Сейчас на preExecute() показывают ImageView ожидания и скрыть фактический макет.

И на postExecute() скрыть изображениеView & показать фактическое расположение.

+0

Как скрыть текущий макет? и как правильно показать ожидающее изображение? – user934779

+0

использовать метод 'serVisibility()'. Например - 'findViewById (R.id.wait_image) .setVisibility (View.VISIBLE)' будет показывать imageView и 'findViewById (R.id.your_layout_id) .setVisibility (View.GONE)' скроет ваш макет. – Shaiful