2014-07-02 31 views
7

Resim URL'sini url web sitesinden görüntülemeye çalışıyorum ama resim bu şekilde görünmüyor, Bu kodda yanlış olan nedir? Bu, image'un URL'sidir.Android'de imageview'deki url web sitesinden görüntü nasıl alınır

Bu XML dosyasında benim Esas Faaliyet

ImageView i; 
private Bitmap bitmap; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    i=(ImageView)findViewById(R.id.ImageView1); 




    bitmap=GetBitmapfromUrl("http://test-dashboard1.seeloz.com/system/images/products_images/86/5454544114_1401886223?1401886223"); 
    i.setImageBitmap(bitmap); 


} 


public Bitmap GetBitmapfromUrl(String scr) { 
    try { 
     URL url=new URL(scr); 
     HttpURLConnection connection=(HttpURLConnection)url.openConnection(); 
     connection.setDoInput(true); 
     connection.connect(); 
     InputStream input=connection.getInputStream(); 
     Bitmap bmp = BitmapFactory.decodeStream(input); 
     return bmp; 



    } catch (Exception e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
     return null; 

    } 
}} 

olduğunu

<RelativeLayout 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" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    tools:context=".MainActivity" > 

    <ImageView 
     android:id="@+id/imageView1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentTop="true" 
     android:layout_marginLeft="85dp" 
     android:layout_marginTop="179dp" 
     android:src="@drawable/ic_launcher" /> 

</RelativeLayout> 

benim AndroidManifest

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.example.image" 
    android:versionCode="1" 
    android:versionName="1.0" > 

    <uses-sdk 
     android:minSdkVersion="8" 
     android:targetSdkVersion="17" /> 
<uses-permission android:name="android.permission.INTERNET"/> 
    <application 
     android:allowBackup="true" 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" 
     android:theme="@style/AppTheme" > 
     <activity 
      android:name="com.example.image.MainActivity" 
      android:label="@string/app_name" > 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
    </application> 

</manifest> 
+0

GetBitmapfromUrl işlevinin sonucu nedir? –

+0

Soruyu açıklayabilir misiniz? –

+0

Ayrıca, sağladığınız URL’den bir görüntü gerçekten göremiyorum. URL doğru mu? –

cevap

15

ana iş parçacığı ağ IO yapmak istiyorum imageview olan

imageLoader.displayImage("http://www.yoursite.com/my_picture.png", imageView); 

kötüdür. Kaçınılması daha iyi.

Ayrıca - URL kaynak erişiminiz yanlış. artık şöyle

Kullanım şey:

private Bitmap bmp; 

    new AsyncTask<Void, Void, Void>() {     
     @Override 
     protected Void doInBackground(Void... params) { 
      try { 
       InputStream in = new URL(IMAGE_URL).openStream(); 
       bmp = BitmapFactory.decodeStream(in); 
      } catch (Exception e) { 
       // log error 
      } 
      return null; 
     } 

     @Override 
     protected void onPostExecute(Void result) { 
      if (bmp != null) 
       imageView.setImageBitmap(bmp); 
     } 

    }.execute(); 

Bu ekran içine yükleme url kaynaklarının 'eski yolu' dir. Açıkçası, böyle bir kodu uzun zamanında yazmamıştım. Volley ve Picasso, benden daha iyi , şeffaf yerel önbellek, birden çok yükleyici-iplik yönetimi ve dahil olmak üzere, daha önce etkili yeniden boyutlandırma öncesi baskı politikaları sağlar. Hepsi ama kahvem :)

1

sen URL birden çok resim yükleme edilecek gidiyoruz senin App, kesinlikle bakmaya değer:

nostra13's "Universal Image Loader"

Bu bitmaplere döküm URL'lerin görüntüleri görüntülemek için özellikleri ton ile müthiş bir kütüphane vb

siz, onun basit bir sınıfı dahil ve ImageLoader + ImageLoader yapılandırmasını ilan ettikten sonra var Bu:. imageview görüntü görünmesini

6

Picasso ile Bir deneyin. Neredeyse bir tam kod satırı almalı ve bunu kurmak için bir dakikadan az bir süre gerekir. Senin durumunda

, olurdu:

Picasso.with(context).load(""http://imageurlgoeshere").into(i); 
İlgili konular