2012-02-21 36 views
0

我正在研究一个简单的货币换算应用程序,我想通过URL从网络抓取图像。我已经使用了许多教程,并且它们都不起作用,即使只是简单的复制和粘贴而没有任何修改。我的XML中是否存在问题,或者只是我的java代码中的一个愚蠢的错误?来自Web的Android图像

XML imageView是在最底层,我只是拿着它与默认图标图像,但它没有显示当我运行应用程序。

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:background="#FFFFFF" 
    android:orientation="vertical" > 

    <TextView 
     android:id="@+id/Title" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentTop="true" 
     android:layout_marginTop="26dp" 
     android:gravity="center" 
     android:text="Currency Converter" 
     android:textColor="#06BD27" 
     android:textSize="24dp" /> 

    <EditText 
     android:id="@+id/editText1" 
     android:layout_width="250dp" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/Title" 
     android:layout_centerHorizontal="true" 
     android:layout_marginTop="53dp" 
     android:text="Enter an Amount:" /> 

    <Spinner 
     android:id="@+id/spinner1" 
     android:layout_width="250dp" 
     android:layout_height="wrap_content" 
     android:layout_alignLeft="@+id/editText1" 
     android:layout_below="@+id/editText1" 
     android:layout_marginTop="82dp" 
     android:entries="@array/To" 
     android:prompt="@string/ToCurrent" /> 

    <Spinner 
     android:id="@+id/spinner2" 
     android:layout_width="250dp" 
     android:layout_height="wrap_content" 
     android:layout_alignLeft="@+id/spinner1" 
     android:layout_below="@+id/editText1" 
     android:layout_marginTop="23dp" 
     android:entries="@array/From" 
     android:prompt="@string/FromCurrent" /> 

    <EditText 
     android:id="@+id/editText2" 
     android:layout_width="250dp" 
     android:layout_height="wrap_content" 
     android:layout_alignLeft="@+id/spinner1" 
     android:layout_alignParentBottom="true" 
     android:layout_marginBottom="18dp" /> 

    <ImageView 
     android:id="@+id/imageView1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/spinner1" 
     android:layout_centerHorizontal="true" 
     android:layout_marginTop="66dp" 
     android:src="@drawable/ic_launcher" /> 

</RelativeLayout> 

Java代码的 createDrawableFromURL()应该处理图像

package com.kimberly.currency_convertor; 

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



import android.app.Activity; 
import android.graphics.Typeface; 
import android.graphics.drawable.Drawable; 
import android.os.Bundle; 
import android.widget.ImageView; 
import android.widget.Spinner; 
import android.widget.TextView; 

public class CurrentConvert extends Activity 
{ 
    Spinner FirstSpin, SecondSpin; 

    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.converter); 

     FirstSpin = (Spinner)findViewById(R.id.spinner1); 
     SecondSpin = (Spinner)findViewById(R.id.spinner2); 

     TextView MainTitle = (TextView) findViewById(R.id.Title); 
     Typeface Currency = Typeface.createFromAsset(getAssets(), "CURRENCY.TTF"); 
     MainTitle.setTypeface(Currency); 

     ImageView imageView = (ImageView)findViewById(R.id.imageView1); 
     imageView.setImageDrawable(createDrawableFromURL("http://savagelook.com/misc/sl_drop2.png")); 
    } 

    private Drawable createDrawableFromURL(String urlString) 
    { 
     Drawable image = null; 
    try 
    { 
     URL url = new URL(urlString); 
     InputStream is = (InputStream)url.getContent(); 
     image = Drawable.createFromStream(is, "src"); 
    } 
    catch (MalformedURLException e) 
    { 
     // handle URL exception 
     image = null; 
    } catch (IOException e) 
    { 
     // handle InputStream exception 
     image = null; 
    } 

    return image; 
    } 
} 

这是我一直在努力遵循http://savagelook.com/blog/android/display-images-from-the-internet-in-android

回答

1

只需使用BufferedImage image = ImageIO.getImage(URL)的代码。