2011-09-15 10 views
3

以下のコードを使用してURLから画像を表示すると、アプリケーションがサーバーから画像をロードするのに時間がかかりすぎています。ロードする画像が8〜10枚ある場合、アプリケーションがハングアップしています。URLから画像を表示しているときにアンドロイドにエラーが発生しました

Bitmap mbmp = BitmapFactory.decodeStream(new java.net.URL("urlname").openStream()); 
Imageview_ref.setImageBitmap(mbmp); 

と私はまだ出力を取得しています。このlogcatエラーメッセージでLogcat

でこれを取得
09-15 11:34:14.265: ERROR/Cursor(14443): Finalizing a Cursor that has not been deactivated or closed. database = /data/data/com.UserLogin/databases/sample.db, table = null, query = SELECT LocationName , LocationImage FROM Locationlist 
09-15 11:34:14.265: ERROR/Cursor(14443): android.database.sqlite.DatabaseObjectNotClosedException: Application did not close the cursor or database object that was opened here 
09-15 11:34:14.265: ERROR/Cursor(14443):  at android.database.sqlite.SQLiteCursor.<init>(SQLiteCursor.java:210) 
09-15 11:34:14.265: ERROR/Cursor(14443):  at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:53) 
09-15 11:34:14.265: ERROR/Cursor(14443):  at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1345) 
09-15 11:34:14.265: ERROR/Cursor(14443):  at android.database.sqlite.SQLiteDatabase.rawQuery(SQLiteDatabase.java:1315) 
09-15 11:34:14.265: ERROR/Cursor(14443):  at com.UserLogin.FindPlaces.getallLocs(FindPlaces.java:134) 
09-15 11:34:14.265: ERROR/Cursor(14443):  at com.UserLogin.FindPlaces.onCreate(FindPlaces.java:37) 
09-15 11:34:14.265: ERROR/Cursor(14443):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
09-15 11:34:14.265: ERROR/Cursor(14443):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627) 
09-15 11:34:14.265: ERROR/Cursor(14443):  at android.app.ActivityThread.startActivityNow(ActivityThread.java:2503) 
09-15 11:34:14.265: ERROR/Cursor(14443):  at android.app.LocalActivityManager.moveToState(LocalActivityManager.java:127) 
09-15 11:34:14.265: ERROR/Cursor(14443):  at android.app.LocalActivityManager.startActivity(LocalActivityManager.java:339) 
09-15 11:34:14.265: ERROR/Cursor(14443):  at android.widget.TabHost$IntentContentStrategy.getContentView(TabHost.java:651) 
09-15 11:34:14.265: ERROR/Cursor(14443):  at android.widget.TabHost.setCurrentTab(TabHost.java:323) 
09-15 11:34:14.265: ERROR/Cursor(14443):  at android.widget.TabHost$2.onTabSelectionChanged(TabHost.java:129) 
09-15 11:34:14.265: ERROR/Cursor(14443):  at android.widget.TabWidget$TabClickListener.onClick(TabWidget.java:453) 
09-15 11:34:14.265: ERROR/Cursor(14443):  at android.view.View.performClick(View.java:2408) 
09-15 11:34:14.265: ERROR/Cursor(14443):  at android.view.View$PerformClick.run(View.java:8816) 
09-15 11:34:14.265: ERROR/Cursor(14443):  at android.os.Handler.handleCallback(Handler.java:587) 
09-15 11:34:14.265: ERROR/Cursor(14443):  at android.os.Handler.dispatchMessage(Handler.java:92) 
09-15 11:34:14.265: ERROR/Cursor(14443):  at android.os.Looper.loop(Looper.java:123) 
09-15 11:34:14.265: ERROR/Cursor(14443):  at android.app.ActivityThread.main(ActivityThread.java:4627) 
09-15 11:34:14.265: ERROR/Cursor(14443):  at java.lang.reflect.Method.invokeNative(Native Method) 
09-15 11:34:14.265: ERROR/Cursor(14443):  at java.lang.reflect.Method.invoke(Method.java:521) 
09-15 11:34:14.265: ERROR/Cursor(14443):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 
09-15 11:34:14.265: ERROR/Cursor(14443):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 
09-15 11:34:14.265: ERROR/Cursor(14443):  at dalvik.system.NativeStart.main(Native Method) 


これは私の更新されたコードビューが..

public View getView(int position, View convertView, ViewGroup parent) { 
      // TODO Auto-generated method stub 
      View v = convertView; 
      if(v == null){ 
       LayoutInflater vl = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
       v = vl.inflate(R.layout.placeslist, null); 
      } 
      Fields o = results.get(position); 

      if (o != null) { 
       TextView iv = (TextView)v.findViewById(R.id.toptext); 
       ImageView tv_Image = (ImageView)v.findViewById(R.id.Locimage); 

       iv.setText(o.getLocationName());        

       try { 
        Bitmap bitmap = BitmapFactory.decodeStream((InputStream) new URL(o.getLocationImage()).getContent()); 
        tv_Image.setImageBitmap(bitmap); 
       } catch (Exception e) { 
        e.printStackTrace(); 
       } 


      } 
      return v; 
     }  
    } 

答えて

1

S ::

  try { 
     Bitmap bitmap = BitmapFactory.decodeStream((InputStream) new URL(
       "http://xyz.com/a/f/a.png") 
       .getContent()); 
     tran_btn_skip.setImageBitmap(bitmap); 
    } catch (Exception e) { 
    } 

は、あなたがインターネット

+0

ありがとうNik。すべてのタイプの画像にこのコードを使用できますか?このコードイメージはサーバーからロードされますか? – atluriajith

+0

Nic ..うまく動作しますが、1つのイメージです。 ::: 09-15 12:28:47.886:DEBUG/skia(26484):---デコーダ - >デコードが偽を返しました ::: – atluriajith

+0

できますあなたのコードを更新してください? –

3

logcatはあなたカーソルデータベース

onDestroy()あなたの活動の方法を閉じていない、これを追加することを示しています

try{ 
    cursor.close(); 
    db.close(); 
}catch(exception e) 
{} 
+0

の許可を与えるために持っていることを確認し、私は、アプリケーションのonDestroyメソッドをオーバーライドすることで、それを閉じてするものとします。カーソルを閉じる方法。 – atluriajith

+0

私はすでに私の答えで言及していた –

+0

ありがとう。それはlogcatで正常に動作します。 – atluriajith

関連する問題