Image laden von einer URL

MetBo

MetBo

Erfahrenes Mitglied
4
Hallo,

gibt es eine Möglichkeit von einer URL ein Bild zu laden und in eine ImageView auszugeben?

Bspw. dieses Bild http://www.prepolino.ch/sprache/trennen/bilder/test.gif laden und in einer ImageView ausgeben!?

Ich habe nur diesen Link und leider keinen InputStream zu Verfügung.
Ansonsten hätte ich es ja auch
Code:
Drawable.createFromStream(InputStream, "src");
machen können.

Danke,
Grüße
 
Na, ich gehe nicht in den Quellcode, sondern habe nur die URL des Images ....

Edit: Ein besseres Beispiel ist folgendes Bild: http://www.google.com/recaptcha/api/image?c=03AHJ_VuuFrywuFpCMbZaRk4hDD3aBBM4qwUYVDmL3RxLBXf8YYECPRPSsu0hJHi8LlPza_0ru_taXezhpPfHo0rvhdTTWcl3F9KFAhtA3WGNzW8GiNVFqE1VAneP6Sfl6cDYqd_MpoEJBf2ejWsECiMMKOnu3Bg-buA

Edit:

hier mein Code:
private Drawable setCaptcha(String challenge) {
if (!challenge.equals("")) {
try {
URL url = new URL(URL_CAPTCHA + challenge);
InputStream is = (InputStream) url.getContent();
Drawable d = Drawable.createFromStream(is, "src");

return d;
} catch (Exception e) {
return null;
}
} else {
return null;
}
}

Dabei entspricht URL_CAPTCHA + challenge folgenden URL http://www.google.com/recaptcha/api...1VAneP6Sfl6cDYqd_MpoEJBf2ejWsECiMMKOnu3Bg-buA

Logcat:
09-29 19:41:47.495: ERROR/AndroidRuntime(1214): FATAL EXCEPTION: main
09-29 19:41:47.495: ERROR/AndroidRuntime(1214): java.lang.RuntimeException: Unable to start activity ComponentInfo{de.pmapps.wsmss/de.pmapps.wsmss.SmsClient}: java.lang.NullPointerException
09-29 19:41:47.495: ERROR/AndroidRuntime(1214): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)
09-29 19:41:47.495: ERROR/AndroidRuntime(1214): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
09-29 19:41:47.495: ERROR/AndroidRuntime(1214): at android.app.ActivityThread.access$2300(ActivityThread.java:125)
09-29 19:41:47.495: ERROR/AndroidRuntime(1214): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
09-29 19:41:47.495: ERROR/AndroidRuntime(1214): at android.os.Handler.dispatchMessage(Handler.java:99)
09-29 19:41:47.495: ERROR/AndroidRuntime(1214): at android.os.Looper.loop(Looper.java:123)
09-29 19:41:47.495: ERROR/AndroidRuntime(1214): at android.app.ActivityThread.main(ActivityThread.java:4627)
09-29 19:41:47.495: ERROR/AndroidRuntime(1214): at java.lang.reflect.Method.invokeNative(Native Method)
09-29 19:41:47.495: ERROR/AndroidRuntime(1214): at java.lang.reflect.Method.invoke(Method.java:521)
09-29 19:41:47.495: ERROR/AndroidRuntime(1214): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
09-29 19:41:47.495: ERROR/AndroidRuntime(1214): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
09-29 19:41:47.495: ERROR/AndroidRuntime(1214): at dalvik.system.NativeStart.main(Native Method)
09-29 19:41:47.495: ERROR/AndroidRuntime(1214): Caused by: java.lang.NullPointerException
09-29 19:41:47.495: ERROR/AndroidRuntime(1214): at de.pmapps.wsmss.SmsClient.onCreate(SmsClient.java:119)
09-29 19:41:47.495: ERROR/AndroidRuntime(1214): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
09-29 19:41:47.495: ERROR/AndroidRuntime(1214): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
09-29 19:41:47.495: ERROR/AndroidRuntime(1214): ... 11 more
 
Zuletzt bearbeitet:
Ja hatte ich vorher auch schon. das Problem dass ich sehe ist, dass ich bei createfromstream kein src habe, oder ist das ist egal?
 
Weiter oben sieht man meinen Code + Logcat. Es ist definitiv diese Funktion, da meine App von dieser Funktion ein Bild bekommt.

Kann ja mal wer von euch selbst ausprobieren (Einfach das Drawable in eine ImageView laden).
 
Hab es ausprobiert, bei mir funktioniert es.
Mit beiden Test-Bildern, auch mit dem Google-Captcha
An die permission gedacht? Irgendein Fehler im layout wodurch der Image-View nicht angezeigt wird? Wird die URL wirklich richtig zusammengesetzt?

Code:
package com.felixl.imagetest;

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

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

public class imagetest extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        ImageView iv = (ImageView) findViewById(R.id.ImageView01);
        iv.setImageDrawable(setCaptcha("test"));
        
    }
    
    private Drawable setCaptcha(String challenge) {
    	if (!challenge.equals("")) {
    		try {
    			URL url = new URL("http://www.google.com/recaptcha/api/image?c=03AHJ_VuuFrywuFpCMbZaRk4hDD3aBBM4qwUYVDmL3RxLBXf8YYECPRPSsu0hJHi8LlPza_0ru_taXezhpPfHo0rvhdTTWcl3F9KFAhtA3WGNzW8GiNVFqE1VAneP6Sfl6cDYqd_MpoEJBf2ejWsECiMMKOnu3Bg-buA");
    			InputStream is = (InputStream) url.getContent();
    			Drawable d = Drawable.createFromStream(is, "src");

    			return d;
    		} catch (Exception e) {
    			return null;
    		}
    	} else {
    		return null;
    	}
    }
}

Code:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<TextView  
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/hello"
    />
<ImageView android:id="@+id/ImageView01" android:layout_width="fill_parent" android:layout_height="fill_parent"></ImageView>
</LinearLayout>

Code:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.felixl.imagetest"
      android:versionCode="1"
      android:versionName="1.0">
    <application android:icon="@drawable/icon" android:label="@string/app_name">
        <activity android:name=".imagetest"
                  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>


<uses-permission android:name="android.permission.INTERNET"></uses-permission>
</manifest>
 

Ähnliche Themen

D
  • Data2006
Antworten
14
Aufrufe
487
jogimuc
J
A
Antworten
10
Aufrufe
1.021
swa00
swa00
S
Antworten
17
Aufrufe
555
jogimuc
J
Zurück
Oben Unten