Wenn ich eine Url für ein Bild habe, möchte ich es runterladen und auf meine Leinwand in Android einfügen. Wie kann ich das Bild in meiner App abrufen?
Bitte um Hilfe.
Danke! de costo.
Wenn ich eine Url für ein Bild habe, möchte ich es runterladen und auf meine Leinwand in Android einfügen. Wie kann ich das Bild in meiner App abrufen?
Bitte um Hilfe.
Danke! de costo.
Es gibt eine HTTP-Client-Bibliothek, die in Android jetzt unterstützt werden könnte, aber für jede feinkörnige Kontrolle können Sie URL & HttpURLConnection verwenden. der Code wird etwas wie folgt aussehen:
URL connectURL = new URL(<your URL goes here>);
HttpURLConnection conn = (HttpURLConnection)connectURL.openConnection();
// do some setup
conn.setDoInput(true);
conn.setDoOutput(true);
conn.setUseCaches(false);
conn.setRequestMethod("GET");
// connect and flush the request out
conn.connect();
conn.getOutputStream().flush();
// now fetch the results
String response = getResponse(conn);
wobei getResponse() etwa so aussieht, in Ihrem Fall erhalten Sie einen Haufen binärer Daten zurück, sollten Sie den StringBuffer in ein Byte-Array ändern umwandeln und die Lesevorgänge in größeren Abständen abteilen.
private String getResponseOrig(HttpURLConnection conn)
{
InputStream is = null;
try
{
is = conn.getInputStream();
// scoop up the reply from the server
int ch;
StringBuffer sb = new StringBuffer();
while( ( ch = is.read() ) != -1 ) {
sb.append( (char)ch );
}
return sb.toString();
}
catch(Exception e)
{
Log.e(TAG, "biffed it getting HTTPResponse");
}
finally
{
try {
if (is != null)
is.close();
} catch (Exception e) {}
}
return "";
}
Da Sie über Bilddaten sprechen, die groß sein können, andere Dinge, die Sie brauchen, um über in Android gewissenhaft zu sein, ist sicherzustellen, dass Sie Ihren Speicher freigeben, sobald Sie können, haben Sie nur 16mb von Heap, um mit für alle Anwendungen zu spielen und es läuft schnell aus und die GC wird Sie verrückt, wenn Sie nicht wirklich gut über die Rückgabe von Speicherressourcen sind
Sie können den folgenden Code verwenden, um ein Bild herunterzuladen:
URLConnection connection = uri.toURL().openConnection();
connection.connect();
InputStream is = connection.getInputStream();
BufferedInputStream bis = new BufferedInputStream(is, 8 * 1024);
Bitmap bmp = BitmapFactory.decodeStream(bis);
bis.close();
is.close();
Erfordert die folgende Berechtigung in AndroidManifest.xml:
<uses-permission android:name="android.permission.INTERNET" />
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.