2012-07-12 158 views
0

我一直有一些麻煩,以獲得IF/ELSE聲明工作。如果/其他語句麻煩(android)

我有以下代碼:

File fileOnSD=Environment.getExternalStorageDirectory();  
    String storagePath = fileOnSD.getAbsolutePath(); 
    Bitmap BckGrnd = BitmapFactory.decodeFile(storagePath + "/oranjelanbg.png"); 
    ImageView BackGround = (ImageView)findViewById(R.id.imageView1);   
    BackGround.setImageBitmap(BckGrnd); 
    if(){ 

    }else{ 
    TextView text1 = (TextView) findViewById(R.id.textView1); 
    TextView text2 = (TextView) findViewById(R.id.textView2); 
    text1.setVisibility(View.VISIBLE); 
    text2.setVisibility(View.VISIBLE); 
    } 

而且我努力實現到以下。 我的應用程序將圖像下載到手機並將其用作背景。 但是,當你第一次運行應用程序時,圖片還沒有下載,所以必須有一些文字。 默認情況下,該文本是不可見的,我想在圖像仍在下載並未放置時使其可見。

我應該在IF語句中使用什麼表達式來檢查圖像是否被加載?

回答

3
if (BckGrnd != null){ 
      BackGround.setImageBitmap(BckGrnd); 
    }else{ 
    TextView text1 = (TextView) findViewById(R.id.textView1); 
    TextView text2 = (TextView) findViewById(R.id.textView2); 
    text1.setVisibility(View.VISIBLE); 
    text2.setVisibility(View.VISIBLE); 
    } 

更好的解決方案:

使用AyncTask用於下載圖片:

AsyncTask<Void, Void, Void> loadingTask = new AsyncTask<Void, Void, Void>() { 
     @Override 
     protected void onPreExecute() {          
     TextView text1 = (TextView) findViewById(R.id.textView1); 
     TextView text2 = (TextView) findViewById(R.id.textView2); 
     text1.setVisibility(View.VISIBLE); 
     text2.setVisibility(View.VISIBLE); 
     } 

     @Override 
     protected Void doInBackground(Void... params) {     
      // Download Image Here 
     } 
     @Override 
     protected void onPostExecute(Void result) { 
      BackGround.setImageBitmap(BckGrnd); 
      text1.setVisibility(View.GONE); 
      text2.setVisibility(View.GONE); 
     } 

    };   
    loadingTask.execute(); 
+0

感謝您的第一awnser工作就像一個魅力,整個下載的東西已經處於的AsyncTask使第一個awnser會做得很好!謝謝! – 2012-07-12 11:16:29

+0

如果它解決了你的問題,那麼你可以接受作爲正確的答案,並upvote它。 – user370305 2012-07-12 11:17:29

+0

還沒有足夠的代表:D – 2012-07-12 11:19:05