Merhabalar imageview ıma 229KBlık bir dosya attığım zaman göstermiyor logcatte : OMX ın comp messagehandler function destructor has been called So exit the loop sorunu veriyor ancak 170KB lık bir dosya gönderdiğimde sorunsuz olarak görebiliyorum bu problemin bir çözümü var mı acaba ?

Resimi çektiğim kod aşağıdaki gibi;ancak linkteki resmi açmıyor null döndürüyor.

alt text

soruldu: 06 Kas '14, 04:52

cmryldrk's gravatar image

cmryldrk
1555
cevap kabul oranı: 0%

değiştirildi: 06 Kas '14, 10:10

rahmanyazgan's gravatar image

rahmanyazgan ♦
4.4k83559

Hatta log cat çıktısı şu şekilde

alt text

(06 Kas '14, 04:59) cmryldrk cmryldrk's gravatar image

İki resim farklı formatlanmış olabilir. Photoshop vb. bir uygulama ile kontrol edin derim.

(06 Kas '14, 05:53) mc44 mc44's gravatar image

yok iki resimde .jpg formatında

(06 Kas '14, 06:43) cmryldrk cmryldrk's gravatar image

Resimleri bir yere upload edip link atar mısın?

(06 Kas '14, 07:55) mc44 mc44's gravatar image

http://imgim.com/veyron.jpg eklemekte sıkıntı çektiğim resim bu

(06 Kas '14, 08:25) cmryldrk cmryldrk's gravatar image

Resimle ilgili bir problem yok. Yeni bir proje oluşturup deneyebilirsin.

(06 Kas '14, 09:04) mc44 mc44's gravatar image

@cmryldrk soruya cevap olmayan yazılarınızı "yeni bir yorum ekle" kısmından ekleyiniz.

(06 Kas '14, 10:08) rahmanyazgan ♦ rahmanyazgan's gravatar image
7 yorumdan 5 tanesi gösteriliyor hepsini göster

Bir url'den resim indirme işlemi yapacaksan AsyncTask sınıfını kullanmalısın. Çünkü onCreate() metodu içerisinde eski sürümlerde olduğu gibi internet bağlantısı yapmak kesinlikle tavsiye edilmez. http://developer.android.com/reference/android/os/NetworkOnMainThreadException.html
Bunun yüzden bu gibi işlemleri arkaplanda gerçekleştirmelisin. Aşağıdaki örnek işini görecektir.

MainActivity.java

package com.imageview.example;

import java.io.InputStream;
import java.net.URL;

import android.app.Activity;
import android.app.ProgressDialog;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.AsyncTask;
import android.os.Bundle;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.Toast;
public class MainActivity extends Activity {
  Button load_img;
  ImageView img;
  Bitmap bitmap;
  ProgressDialog progressDialog;
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    img = (ImageView)findViewById(R.id.image);
    new LoadImage().execute("http://imgim.com/veyron.jpg");
  }
  private class LoadImage extends AsyncTask<String, String, Bitmap> {
    @Override
        protected void onPreExecute() {
            super.onPreExecute();
            progressDialog = new ProgressDialog(MainActivity.this);
            progressDialog.setMessage("Yükleniyor...");
            progressDialog.show();
    }
       protected Bitmap doInBackground(String... args) {
         try {
               bitmap = BitmapFactory.decodeStream((InputStream)new URL(args[0]).getContent());
        } catch (Exception e) {
              e.printStackTrace();
        }
      return bitmap;
       }
       protected void onPostExecute(Bitmap image) {
         if(image != null){
           img.setImageBitmap(image);
           progressDialog.dismiss();
         }else{
             progressDialog.dismiss();
             //Burada image adreste olmayabilir ya da 
             //kullanıcının o an internet bağlantısı kopmuş olabilir onunla iligi de bir kontrol yapmalısın.
             Toast.makeText(MainActivity.this, "Image bulunamadı!!!", Toast.LENGTH_SHORT).show();
         }
       }
   }
}

activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <ImageView
        android:id="@+id/image"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/ic_launcher" />

</LinearLayout>

Son olarak Manifest içerisinde internet izni vermelisin.
<uses-permission android:name="android.permission.INTERNET"/>

permanent link

cevaplandı: 07 Kas '14, 07:30

mc44's gravatar image

mc44
1.1k222732
cevap kabul oranı: 42%

değiştirildi: 07 Kas '14, 07:30

Merhaba,

Resim gösterimi durumlarında bu konuda de-facto haline gelmiş Universal Image Loader kütüphanesini kullanmanızı tavsiye ederim. Universal Image Loader, ImageView boyutunuza ve resmin boyutuna bakarak, sizin de daha önceden yaptığınız konfigürasyona uygun olarak resmin boyutunu düşürür ve optimal bir şekilde görüntülenmesini sağlar.

permanent link

cevaplandı: 08 Kas '14, 20:27

tilikoglu's gravatar image

tilikoglu
8602816
cevap kabul oranı: 18%

Cevabınız
toggle preview

Bu soruyu takip et

E-Posta üzerinden:

Üyelik girişi yaptıktan sonra abonelik işlemlerini yapabilirsiniz

RSS üzerinden:

Cevaplar

Cevaplar ve Yorumlar

Yazı Formatlama

  • *italic* ya da _italic_
  • **bold** ya da __bold__
  • link:[text](http://url.com/ "başlık")
  • resim?![alt text](/path/img.jpg "başlık")
  • liste: 1. Foo 2. Bar
  • temel HTML etiketleri de kullanılabilir

Bu sorunun etiketleri:

×818
×10

Soruldu: 06 Kas '14, 04:52

Görüntüleme: 714 kez

Son güncelleme: 08 Kas '14, 20:27

powered by BitNami OSQA