PHP Dashboard für HmIP Smartmeter
09.10.2024
Elektronik | Funk | Software
Der Technik-Blog
Auf dieser Seite zeigen wir, wie unter Android mit dem HTTP-Client ein Image von einer PHP-Datei heruntergeladen wird. Ganz unten in der App befindet sich ein Button, der den Task für den Download startet. Das Foto wird dabei im Hintergrund heruntergeladen und nach der Fertigstellung des Downloads in die ImageView geladen. Die App zeigt anschließend in der TextView an, ob der Download erfolgreich war.
Android Version | API Version |
---|---|
4.0.3 | 15 |
Der PHP-Script stellt die Daten für die App bereit. Das Foto wird direkt von der PHP-Datei geladen und nicht von einem Pfad mit der Bilddatei. Das hat den Vorteil, dass nicht jedes Bild eine eigene Datei hat. Mittels GET-Parameter kann die PHP-Datei auch ein bestimmtes Image anzeigen. Außerdem kann der Script so modifiziert werden, dass das Bild erst nach einer Autorisierung angezeigt wird. Der hier verwendete PHP-Code hat drei Bilder, von denen er zufällig eines ausgibt. Dieses Beispiel ist auch auf unseren Testserver verfügbar und mit der App kompatibel.
MainActivity: Dieser Abschnitt wird in die MainActivity kopiert.
public class MainActivity extends AppCompatActivity {
TextView txt;
boolean download_ok;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
txt = (TextView)findViewById(R.id.textView);
Button button= (Button) findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
new DownloadImageFromInternet((ImageView) findViewById(R.id.imageView))
.execute("http://testserver.aeq-web.com/android_load_image/index.php");
}
});
}
private class DownloadImageFromInternet extends AsyncTask {
ImageView imageView;
public DownloadImageFromInternet(ImageView imageView) {
this.imageView = imageView;
txt.setTextColor(Color.GRAY);
txt.setText("Try to download image....");
}
protected Bitmap doInBackground(String... urls) {
String imageURL = urls[0];
Bitmap d_image = null;
try {
InputStream in = new java.net.URL(imageURL).openStream();
d_image = BitmapFactory.decodeStream(in);
download_ok = true;
} catch (Exception e) {
download_ok = false;
e.printStackTrace();
}
return d_image;
}
protected void onPostExecute(Bitmap result) {
txt_update();
imageView.setImageBitmap(result);
}
void txt_update (){
if(download_ok == true) {
txt.setTextColor(Color.GREEN);
txt.setText("Image was successfully downloaded");
}else {
txt.setTextColor(Color.RED);
txt.setText("Image could not be downloaded");
}
}
}
}
Manifest: Diese Zeile wird in die Manifest kopiert, um den Zugriff auf das Internet zu erlauben.
<uses-permission android:name="android.permission.INTERNET" />
Auf dieser Seite zeigen wir, wie unter Android ein asynchroner HTTP/HTTPS Request gestartet wird und mittels Task verarbeitet wird.
WeiterlesenAuf dieser Seite zeigen wir, wie mit Android die GPS-Position, Geschwindigkeit & Seehöhe sowie der Name der Ortschaft ermittelt werden kann.
WeiterlesenAEQ-WEB © 2015-2024 All Right Reserved