0

IF/ELSE ステートメントを機能させるのに苦労しています。

次のコードがあります。

    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 ステートメントでどの式を使用すればよいですか?

4

1 に答える 1

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();   
于 2012-07-12T11:04:50.090 に答える