Aide Android IDE Hintergründe Hilfe

  • Antworten:4
J Cooper
  • Forum-Beiträge: 2

28.09.2013, 20:10:09 via Website

Hallo Leute
Hoffe das ich hier etwas mehr Glück habe den bei Google habe ich nicht wirklich was gefunden außer dieses Forum.

Also ich hab folgendes Programm Aide geladen was eig ganz simpel scheint.
Ich will damit ein simples app erstellen um mir ein paar Grundkenntnisse an zu eignen.
Die app soll nur so eine Art Buch werden.

Meine Frage ist eig nur wie ich den Hintergrund anpassen kann ein Bild habe ich schon eingefügt aber wenn ich das app dann starte ist das Bild völlig verzehrt. Ich will das es sich automatisch anpassen kann egal wie ich mein Tablet drehe.

Antworten
Aaron B.
  • Forum-Beiträge: 206

29.09.2013, 08:01:00 via App

Erstelle eine Datei (Java-Klasse) unter src/[path] mit dem Namen: "ImageUtils.java" und füge folgenden Text ein:
1public class ImageUtils
2{
3
4 public static Drawable scaleDrawable(Drawable drawable, int width, int height, boolean filter) throws Exception {
5 Drawable d = drawable;
6 int w = width;
7 int h = height;
8 boolean f = filter;
9
10 Bitmap b = drawableToBitmap(d);
11 Bitmap sB = Bitmap.createScaledBitmap(b, w, h, f);
12
13 return new BitmapDrawable(sB);
14 }
15
16 public static Drawable cropDrawable(Drawable drawable, int x, int y, int width, int height, boolean filter) throws Exception {
17 Drawable d = drawable;
18 int sX = x;
19 int sY = y;
20 int w = width;
21 int h = height;
22 boolean f = filter;
23
24 Bitmap b = drawableToBitmap(d);
25 Bitmap sB = Bitmap.createBitmap(b, sX, sY, w, h, new Matrix(), f);
26
27 return new BitmapDrawable(sB);
28 }
29
30 public static Bitmap drawableToBitmap(Drawable drawable) {
31 if (drawable instanceof BitmapDrawable) {
32 return ((BitmapDrawable)drawable).getBitmap();
33 }
34
35 Bitmap bitmap = Bitmap.createBitmap(drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight(), Bitmap.Config.ARGB_8888);
36 Canvas canvas = new Canvas(bitmap);
37 drawable.setBounds(0, 0, canvas.getWidth(), canvas.getHeight());
38 drawable.draw(canvas);
39 return bitmap;
40 }
41
42}

Falls bei dir B) dasteht, schreibe: "B )" ohne Lehrstellen

Vergiss nicht, die nötigen Klassen zu importieren. (Bei AIDE einfach lange auf eine unterringelte Stelle drücken, dann auf "fix" und "fix imports" gehen).

Dann füge folgende Methoden zu deiner Activity hinzu:

1public void setBackground(Drawable d)
2 {
3 try
4 {
5 WallpaperManager wm = WallpaperManager.getInstance(c);
6 View dv = getWindow().getDecorView();
7
8 getWindow().setBackgroundDrawable(ImageUtils.cropDrawable(d, 0, 0, dv.getWidth(), dv.getHeight(), true));
9 }
10 catch (Exception e)
11 {
12 Toast.makeText(c, getResources().getString(R.string.exception_background) + " - " + e.getMessage(), Toast.LENGTH_SHORT).show();
13 }
14 }

1public void setViewBackground(View v, Drawable d)
2 {
3 try
4 {
5v.setBackgroundDrawable(ImageUtils.cropDrawable(d, 0, 0, v.getWidth(), v.getHeight(), true));
6 }
7 catch (Exception e)
8 {
9 Toast.makeText(c, getResources().getString(R.string.exception_background) + " - " + e.getMessage(), Toast.LENGTH_SHORT).show();
10 }
11 }

Um jetzt den Hintergrund deiner Activity zu setzen, kannst du setBackground(DeinDrawable); nutzen.

Wenn du von einem View den Hintergrund setzen möchtest, kannst du setViewBackground(deinView, deinDrawable); nutzen.

Falls es bei dir nicht funktioniert, dann kann es entweder daran liegen, dass das Bild zu klein/groß zum skalieren ist, oder dass du diese Methoden (setDrawable / setViewDrawable) direkt nach dem Starten der Activity / Anzeigen des Views aufgerufen hast. Im zweiten Fall musst du das ganze etwas verzögern:

1new Thread() {
2public void run () {
3try {
4//200 millisekunden warten:
5sleep (200);
6//im ui-thread ausführen, damit die App nicht abstürzt:
7runOnUiThread (new Runnable() {
8public void run () {
9setBackground (deinBild);
10
11// oder:
12
13setViewBackground(deinView, deinBild);
14}
15});
16} catch (Exception e) {
17//dann halt net
18}
19}
20}.start();

LG :)

— geändert am 29.09.2013, 08:01:12

Antworten
Guenter Wirth
  • Forum-Beiträge: 3

11.02.2014, 10:31:55 via Website

Hallo möchte mich kurz vorstellen bin 60 jahre und heise Günter und
komme aus Bad Vilbel.
Da ich jetzt in Rente bin und zeit habe versuche ich es auch mal mit AIDE
habe meine Apps immer mit App Inventor erstellt.
Habe mich einigermassen durchgelesen und auch schon eine kleine App erstellt
was mir leider nicht gelingt ist das speichern bzw. das laden eines Textfeldes.
Ich will jetzt nicht betteln aber wenn es möglich wäre mir eine Hilfestellung in Form
eines Listings (Anleitung) zu geben.
MFG Guenter aus Bad Vilbel (Hessen).

— geändert am 11.02.2014, 10:46:49

Antworten
impjor
  • Forum-Beiträge: 1.793

11.02.2014, 16:02:48 via App

Was hat das jetzt mit "AIDE Hintergrund" zu tun? Mach doch lieber einen neuen Thread zu einem neuen Problem auf.

Kannst du denn irgendwelche Daten in Dateien/SharedPreferences(gibt es das in AIDE?)/Datenbank speichern?
Wenn nicht musst du dich erstmal für einen dieser Wege entscheiden.

LG

Liebe Grüße impjor.

Für ein gutes Miteinander: Unsere Regeln
Apps für jeden Einsatzzweck
Stellt eure App vor!

Antworten
Guenter Wirth
  • Forum-Beiträge: 3

11.02.2014, 16:07:50 via Website

Sorry
Danke werde dazu einen neuern Thread aufmachen.
Wollte die Daten (Textfeld) in den internen speicher
speichern.
LG

Antworten