Bild via URL einfügen

  • 7 Antworten
  • Letztes Antwortdatum
S

Sir_Alex@tour

Neues Mitglied
0
Servus,

ich hab mich an einer App versucht die bilder über eine URL einbinden soll. Ich habe schon herrausgefunden das ich alles in einen thread reinpacken muss da sonst eine Exception geworfen wird. Dies ist mein Code:

Code:
package com.ich.muskelnav;

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

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


public class MuskelNavigator extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_muskel_nav);
		Thread thread = new Thread(new thx());
		thread.start();
	}
	
class thx implements Runnable { 
	@Override
	public void run() {
		
		ImageView iv = (ImageView) findViewById(R.id.bild1);
		Drawable d = null;
		
		try {
			URL url = new URL("http://www.prepolino.ch/sprache/trennen/bilder/test.gif");
		
		   InputStream is = (InputStream) url.getContent();
		   d = Drawable.createFromStream(is, "src");
		  } catch (MalformedURLException e) {
			   e.printStackTrace();
			  } catch (IOException e) {
			   e.printStackTrace();
			   } 
		iv.setImageDrawable(d);
		
	}}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
	// Inflate the menu; this adds items to the action bar if it is present.
	getMenuInflater().inflate(R.menu.muskel_nav, menu);
	return true;
}


}


Code:
iv.setImageDrawable(d);

an der stelle wird mir gesagt "Source not found". Im Layout gibt es das 'bild1'. Ich hab nun schon alles mögliche versucht aber finde keine Lösung. ist bestimmt wieder was übelst banales was mir nicht gleich auffällt.

Danke schon mal für Hilfe ;)
 
Hey,

vllt hilft dir das:

Code:
public static Drawable drawableFromUrl(String url) throws IOException {
    Bitmap x;

    HttpURLConnection connection = (HttpURLConnection) new URL(url).openConnection();
    connection.connect();
    InputStream input = connection.getInputStream();

    x = BitmapFactory.decodeStream(input);
    return new BitmapDrawable(x);
}

Gruß
Alex
 
Das löst das Problem nicht ... wirft wieder Source not found

Sorry ... Danke trotzdem für die Antwort
 
1. Hast Du denn auch ne Source angegeben? Poste doch mal bitte den Code
2. HttpRequests nicht in der MainActivity auslösen, das funktioniert gewollt nicht
 
servus,
Der Code steht oben ... Ich hab schon erfahren das ich den Code in ein Thread Laden muss also hab ich ne extra klasse angelegt.
 
hey,

mal ganz trivial...permissions sind gesetzt? Weil wundert mich...der von mir gepostet Code klappt soweit...

Gruß
Alex
 
permission :
Code:
<uses-permission android:name="android.permission.INTERNET"/>
ist gesetzt.

@Alex Wo soll ich denn dein Scriptschnipsel einfügen ich hab ihn in meinen Tread geschmissen:

Code:
class thx implements Runnable { 
	@Override
	public void run() {
		

		Bitmap x = null;
		InputStream is = null;
		
		try {
			URL url = new URL("http://www.prepolino.ch/sprache/trennen/bilder/test.gif");
		    HttpURLConnection connection = (HttpURLConnection) url.openConnection();
		    connection.connect();
		   is = (InputStream) connection.getContent();
		   
		   
		  } catch (MalformedURLException e) {
			   e.printStackTrace();
			  } catch (IOException e) {
			   e.printStackTrace();
			   } 
		ImageView iv = (ImageView) findViewById(R.id.bild1);
		x = BitmapFactory.decodeStream(is);
		iv.setImageBitmap(x);
		
	}
 
Zurück
Oben Unten