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