Androidでjcifsを用いた画像の表示

このQ&Aのポイント
  • Androidでjcifsを用いた画像の表示方法について
  • LAN接続されたWindowsPC内の画像ファイルを表示する方法
  • FileNotFoundExceptionが発生してしまう原因について
回答を見る
  • ベストアンサー

Androidでjcifsを用いた画像の表示

現在,Android4.4.2の端末にLANで接続されたWindowsPC内の画像ファイルを表示しようとしています. 下記のようにファイルの存在を確認してからimageViewに表示させようとしており、ファイルがあればfile.exists()はtrueを返し、なければfalseを返すことから、ファイルの存在の確認は問題なく行えていることはわかりました. しかし,デコードする部分でFileNotFoundExceptionが発生してしまいます. 処理はAsyncTaskのdoingBackGroud内で行っています. try { SmbFile file = new SmbFile("smb://mypc:7360@192.168.11.15/Users/mypc/test.bmp/"); if (file.exists()){ Log.e(TAG,"OK"); }else{ Log.e(TAG,"NO"); } Bitmap originalImage = BitmapFactory.decodeFile(file.getPath()); iv1.setImageBitmap(originalImage); } catch (Exception e ) { e.printStackTrace(); } このような場合、何が原因であると考えられるでしょうか? お分かりになられる方がいらっしゃいましたら何卒ご教授宜しく御願い致します.

  • Java
  • 回答数1
  • ありがとう数8

質問者が選んだベストアンサー

  • ベストアンサー
  • teketon
  • ベストアンサー率65% (141/215)
回答No.1

URLの最後が/なのが原因では?

con014057
質問者

お礼

ご回答ありがとうございます. 最後の / を削除した場合も試してみましたが、 同じ結果になってしまいました...

関連するQ&A

  • Andorid tryで取得した画像表示について

    こんばんは ちょっと初心者には質問方法が難しいです。 Andoridアプリを勉強しながら作成しています。 ネット上から取得した画像を端末に表示しています。 (1)-------------------- 中略 try { URL url = new URL(photour2); InputStream input = url.openStream(); Bitmap bitmap = BitmapFactory.decodeStream(input); Bitmap bitmap1 = Bitmap.createScaledBitmap(bitmap, 120, 160, true); getimg1.setImageBitmap(bitmap1);←【ここ】 } catch (Exception exx) { changeImageView = (ImageView)findViewById(R.id.imageView3); changeImageId = R.drawable.now; changeImageView.setImageResource(changeImageId); ex.printStackTrace(); } finally { } ex.printStackTrace(); } finally { } -------------------- を、 (2)-------------------- 中略 try { URL url = new URL(photour2); InputStream input = url.openStream(); Bitmap bitmap = BitmapFactory.decodeStream(input); Bitmap bitmap1 = Bitmap.createScaledBitmap(bitmap, 120, 160, true); } catch (Exception exx) { ex.printStackTrace(); } finally { } ex.printStackTrace(); } finally { } 中略 if (bitmap1の判定){ getimg1.setImageBitmap(bitmap1);←【ここで表示させたい】 } else { changeImageView = (ImageView)findViewById(R.id.imageView3); changeImageId = R.drawable.now; changeImageView.setImageResource(changeImageId); } -------------------- (1)を(2)のように、tryしてその直後では無く、いろいろ処理してから表示させたいのですが、うまくいきません。 Java初心者で専門用語もわからず、質問方法もわからない状態です。 (1)ではうまく表示されています。 【開発環境】 Eclipse 【やった事】 ググりました沢山ヒットしますが目的の答えが見つかりませんでした。 (専門用語がわからないので、適切な検索とはいえませんが・・・・泣) 【質問・やりたい事】 (1)なんでtryの中で表示されていた画像が、外に出たら表示されないのですか? (2)どうやったら表示する事が出来ますか? 質問するにも低レベル過ぎて本当に失礼と思いますが、是非アドバイスと回答よろしくお願いたします

    • ベストアンサー
    • Java
  • エラーメッセージで教えていただけないでしょうか

    はじめまして。 下記のソースでデバックをすると処理が途中で止まってしまいます。 原因がわからず悩んでいます。 どなたか教えていただけないでしょうか。よろしくお願いします。 // photoというIDのImageViewオブジェクトを取得 ImageView img = (ImageView)this.findViewById(R.id.photo); // assetsディレクトリのファイルにアクセス AssetManager am = getResources().getAssets(); BufferedInputStream buf; Log.d("tag","img"); try{ buf = new BufferedInputStream(am.open("eijyu.jpg"),10000); Log.d("tag","buf"); // バッファからBitmapを作成 Bitmap bitmap = BitmapFactory.decodeStream(buf); Log.d("tag","img"); // ImageViewに作成したBitmapを表示 img.setImageBitmap(bitmap); ← この部分が原因っぽい。 Log.d("tag","set"); // バッファを閉じる buf.close(); Log.d("tag","buf_close"); }catch (IOException e){ e.printStackTrace(); Log.d("tag","catch"); } ERROR: thread attach failed Got RemoteException sending setActive(false)notification to pid 1878 uid 10031

  • Androidアプリでネット上の画像を表示

    また、お世話になります Androidアプリを勉強しながら作成しております 以前、ネット上にある画像をアプリに読込して表示する方法を聞いて、勉強しながら表示する事が出来ました。 しかし、たまに取り損ねる事がありこの回避方法を教えてください。 現在のソース String url = "http://www.hogehoge.com/hoge.jpg"; try { URL url = new URL(url); InputStream input = url.openStream(); Bitmap bitmap = BitmapFactory.decodeStream(input); Bitmap bitmap1 = Bitmap.createScaledBitmap(bitmap, 100, 75, true); getimg1.setImageBitmap(bitmap1); } catch (Exception ex) { ex.printStackTrace(); } finally { } 【知りたい事】 ネット上にある(必ずあるのが条件)画像を取り損ねる事があるので、その対応方法を知りたい。 【開発環境】 eclipse galaxy S Windows vista スペルミス等がありましたら、ご了承ください。 宜しくお願します。

    • ベストアンサー
    • Java
  • クリックして画像を変え、一定時間経過後もとに戻す

    androidアプリを作成している初心者です。 画像をクリックすると画像が変わるようになるようにしたいと思ってます。 画像を変えるところまではできたのですが、 一定時間経過後にもとに戻すにはどうしたらいいかがわかりません。 以下、ソースコード。 public class MainActivity extends Activity { ImageView iv; Bitmap bmp; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); LinearLayout ll = new LinearLayout(this); ll.setOrientation(LinearLayout.HORIZONTAL); ll.setGravity(Gravity.CENTER); setContentView(ll); //画像表示 iv = new ImageView(this); bmp = BitmapFactory.decodeResource(getResources(), R.drawable.ikari); iv.setImageBitmap(bmp); ll.addView(iv); //画像をクリックした時に関数を呼び出す iv.setOnClickListener(new img_ac()); } //画像を変える class img_ac implements OnClickListener { public void onClick(View v) { ImageView tmp = (ImageView) v; tmp.setImageBitmap(BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher)); } } } 一定時間経過後に元の画像に戻すには、どのようにしたら良いのでしょうか。

    • ベストアンサー
    • Java
  • 【java】ファイル名から画像を取得

    こんにちは。Androidアプリを開発しています。 さっそくですが、質問です。 現在、ファイル名から画像を取得するというコードを書いています。 コードは以下の通りです。 //取得したファイル名を格納 ArrayList<String> file; file = intent.getStringArrayListExtra("list"); //画像を格納する配列 Bitmap[] image = new Bitmap[file.size()]; //ファイル名から画像をとってくる for (int i = 0 ;  i < file.size() ;  i++ )  { image[i] = findImageByFilename(file.get(i)); } //ファイル名から画像をとってくるメソッド public Bitmap findImageByFilename (String file_name) { Bitmap image = null; try { image = MediaStore.Images.Media.getBitmap(getContentResolver(), Uri.parse(file_name)); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return image; } Logをとった結果、 try { の下の image = MediaStore.Images.Media.getBitmap(getContentResolver(), Uri.parse(file_name)); でエラーが出ていることまではわかりました。 しかし、そこからどのようにすればいいのかがわかりません。 分かる方、ご回答お願い致します。

  • 画像が存在しない時の 「×」 表示をオフにしたい

    img タグで画像を表示しようとした時、存在しないと 「×」 表示が出ますが、 その表示をオフにする方法ご存知でしょうか? 例えば IE のイメージツールバーをオフにする以下のような方法があると助かるのですが... <meta http-equiv="imagetoolbar" content="no"> $url = 'http://www.example.com'; $header = get_headers($url); $header_info = explode(" ", $header[0]); if($header_info[1] == 200) echo '<img src="http://www.example.com/picture01.jpg" />'; 上記の方法で file が存在するか確認してから表示してたのですが、 サーバーの応答によって検索スピードがかなり遅くなってしまうので 存在しないファイルもそのまま html を書いた方が速いかと思いました。 画像は自分のサーバーでは無いので file_exists は使えないのですが、 なにかアドバイスあれば教えて頂けると助かります。

    • ベストアンサー
    • PHP
  • 例外を明示的にthrowするとき

    例外をthrowしたいとき、以下の場合、IllegalArgumentException、FileNotFoundException、どちらを使用していいのかわかりません。 public static void main(String[] args){ try{ AAA(new File(args[0])); }catch(FileNotFoundException e){ System.out.println(e.getMessage); } e)catch(IllegalArgumentException e){ System.out.println(e.getMessgae()); } } public static void AAA(File file){ if(isFile()){ //処理 }else{ throw new IllegalArgumentException("引数が不正です");    //それともthrow new FileNotFoundException("ファイルが存在しません"); } }

  • ネットワーク上の他のパソコン内のjarを実行したい。

    ネットワーク上の他のパソコン内のjarを実行したい。 実行して他のパソコンの中で動かしたいですが、反応がありませんでした。 他のパソコン側のセキュリティ設定や、jarファイルへの設定が必要なのでしょうか。 また、他の方法で同じことはできませんでしょうか。 ご存知の方がおられましたら教えてください。 よろしくお願いいたします。 以下は、試したソースです。 import java.io.IOException; public class exec { public static void main(String[] args) { // ネットワーク上のjarを実行したい。 try { //Runtime.getRuntime().exec("cmd /c start //myPC/log/test.jar");//反応なし //Runtime.getRuntime().exec("cmd /c start //myPC/log/test.txt");//反応なし Runtime.getRuntime().exec("cmd /c start C:/log/test.jar");//実行できる Runtime.getRuntime().exec("cmd /c start C:/log/test.txt");//実行できる } catch (IOException e) { e.printStackTrace(); } } }

    • ベストアンサー
    • Java
  • Androidプログラムについて

    多数の画像を、パラパラ漫画のように切り替えていく方法について相談があり、投稿させていただきました。 以前、xmlファイルで画像を読み込む方法が簡単だということで、hirotn様にご回答いただき、 動作させることができました。 ありがとうございました。 携帯の実機にインストールし、エラーも出ず動作することも確認できたのですが、 画像を切り替えるタイミングがあまりにも遅くなっており困っています。 画像が多い場合は、メモリ不足等起こっているのでしょうか。 プログラムで解決できる方法があれば教えていただきたく、よろしくお願いします。 (ちなみに、xmlファイルで読み出すファイルは100枚程度(80MB程度)です。 もっと数を増やしたり、画質をよくしたいとも思っております。) ※サンプルは下記で見つけました。 http://monoist.atmarkit.co.jp/mn/articles/1205/21/news003.html (以下、プログラム) package jp.test.animation.frame; import android.app.Activity; import android.content.Context; import android.graphics.drawable.AnimationDrawable; import android.graphics.drawable.Drawable; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.ImageView; public class FrameAnimationTestActivity extends Activity { // ボタン Button mBtnAnimation; Button m5BtnAnimFromXML; // ビュー ImageView mImageAnimation; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); mBtnAnimation = (Button) findViewById( R.id.button_animation ); m5BtnAnimFromXML = (Button) findViewById( R.id.button_anim_from_xml ); mImageAnimation = (ImageView) findViewById( R.id.image_animation ); mBtnAnimation.setOnClickListener(mClickListener); m5BtnAnimFromXML.setOnClickListener(mClickListener); } View.OnClickListener mClickListener = new View.OnClickListener() { public void onClick(View v) { // アニメーション中なら、停止 Drawable d = mImageAnimation.getBackground(); if( d != null ){ try{ if( ((AnimationDrawable) d).isRunning() ){ ((AnimationDrawable) d).stop(); return; } } catch( RuntimeException e ){ e.printStackTrace(); } } //if( v == mBtnAnimation ){ //frameAnimationTest( //FrameAnimationTestActivity.this, mImageAnimation ); //} if( v == m5BtnAnimFromXML ){ frameAnimationFromXMLTest( mImageAnimation ); } } }; // フレームアニメーションを XML から読み込む void frameAnimationFromXMLTest( View v ){ // リソースからアニメーションを読み込み、ビューに設定 v.setBackgroundResource( R.drawable.droid_jump ); // ビューからアニメーションを取り出し AnimationDrawable anim = (AnimationDrawable)v.getBackground(); // アニメーション開始 anim.start(); } }

  • csvファイルを2次元配列に格納

    Javaの勉強をしています。 csvファイルを読み込んで2次元配列に格納する方法を教えて下さい。 1次元の配列なら下記のようにして出来たのですが、2次元の配列に格納する方法が分かりません。 ------------------------------ try { File csv = new File("xxx.csv"); BufferedReader brf = new BufferedReader(new FileReader(csv)); while(brf.ready()) { String line = brf.readLine(); String[] data = line.split(","); for(int j=0; j<data.length; j++) { System.out.print(data[j] + "\t"); } System.out.println(); } brf.close(); } catch(FileNotFoundException e) { e.printStackTrace(); } catch(IOException e) { e.printStackTrace(); } --------------------------- 一度はできないのかと思い、上記の1次元配列のdata[j]を2次元配列のarray[i][j]に代入してみたのですが出来ませんでした。 回答宜しくお願い致します。

    • ベストアンサー
    • Java

専門家に質問してみよう