2010-11-30 7 views
1

私のシステムの外部フォルダからアンドロイドアプリケーションに画像をロードしたい。次のコードを使用しますが、イメージは表示されません。私がそれをデバッグすると、ビットマップオブジェクト 'ビットマップ'がnullとして表示されます。どうすればこの問題を解決できますか?Androidのコンピュータからリアルデバイスに画像を表示するアプリケーション

 ImageView img=(ImageView)findViewById(R.id.myImage); 
     String fname="C:/Users/Public/Pictures/Garden.jpg"; 
     Bitmap bitmap = BitmapFactory.decodeFile(fname); 
     img.setImageBitmap(bitmap); 

私の実際の必要性は私のandoridアプリケーション(実際のデバイスで)は、1台のコンピュータに保存されているいくつかの画像を表示する必要があります。このアプリケーションの管理者は、そのコンピュータの特定のフォルダにいくつかの画像をアップロードします。アンドロイドアプリケーションはIPアドレスを使ってこれらの画像にアクセスし、これらの画像を表示します。これらのイメージをsdcardパスにプッシュする必要がある場合は、実行時にどのように行うことができますか?

は、すべてに感謝します。..

+0

あなたは、外部何を意味しています使用することができますSDカードにアクセスしようとしている場合は?エミュレータの外? –

+0

外部手段をプロジェクトフォルダの外にあります – Jomia

+0

ビルド時に?その場合、Javaコードでイメージパスにアクセスすることは意味をなさない。そのJavaコードは実行時に実行されます。 –

答えて

1

あなたがシステムファイルにアクセスすることはできません。このlink
を確認してくださいあなたは、次の

ImageView img=(ImageView)findViewById(R.id.myImage); 
File imgFile = new File(“/sdcard/Images/image.jpg”); 
     if(imgFile.exists()){ 

      Bitmap bitmap = BitmapFactory.decodeFile(imgFile); 
      myImage.setImageBitmap(bitmap); 

     } 
2

を "外部のフォルダ" ..私を助けてください?それは何ですか? Androidは内部ファイルシステム(内部ストレージ、SDカードなど、Linuxオペレーティングシステム経由でマウントしたもの)にのみアクセスできます。 Windowsのパスを使用することは決して決してうまくいかない。そのデータはどこから来るはずですか?

携帯電話の内部ストレージまたはSDカードを指す適切なUNIXスタイルのパスを使用する必要があります。パスはアプリケーションからアクセスできる必要があります。

0

あなたのコンピュータ上のファイルには、アンドロイド(エミュレータまたは電話)からアクセスすることはできません。アプリケーションを残りのアプリケーションとは独立して実行していると考える必要があります。

あなたが実際にアンドロイドのドロウアブルフォルダに画像を置いて(そしてR.drawable.imagenameを使って画像にアクセスしたくない場合は、あなたの画像をあなたの電話機/エミュレータのSDカードにプッシュし、 SDカードのパス

関連する問題