Assetmanager ohne extends Activity

  • Antworten:3
Daniel Martin
  • Forum-Beiträge: 3

12.07.2011, 17:53:11 via Website

Hallo Community :)

Bin neu hier, und hab auch schon etwa 3 Stunden am Assetmanager herumprobiert.. leider ohne erfolg :(

Mein Problem ist, dass ich eine Klasse habe, und dort den Assetmanager benutzen will, um Bilder, die im asset-ordner liegen in eine Variable zu speichern. Dabei kann ich aber nicht auf die Activity Klasse durch die Vererbung zugreifen, also mit dem Schlüsselwort extends.

Gibt es vielleicht da eine möglichkeit, das anderst zu lösen? Wenn möglich auch gar ohne Assetmanager.

Grüße vom Bodensee :)

Antworten
Ansgar M
  • Forum-Beiträge: 1.544

12.07.2011, 18:07:31 via App

Hey,
geht das vielleicht, indem du einen Context übergibst? Vieles in den Activities "lässt sich über einen Context auch benutzen". (Sorry für die Ausdrucksweise :P)
Lg Ansgar

Antworten
Daniel Martin
  • Forum-Beiträge: 3

12.07.2011, 18:16:32 via Website

Also des ist leichter gesagt als getan ;)

Ich poste mal schnell den code ;)

1package com.rpggame.map.objects;
2
3import android.graphics.Bitmap;
4import android.graphics.BitmapFactory;
5
6import com.rpggame.map.MapBushes;
7import com.rpggame.maps.DecodeRessources;
8
9public class RedBush1 extends MapBushes{
10 private Bitmap bmpImage;
11
12 DecodeRessources decRes = new DecodeRessources(); // Hier sollte ich eigentlich den Context übergeben
13
14 public Bitmap getPicture(){
15 return bmpImage;
16 }
17 public void setImage(){
18 bmpImage = // Hier sollte jetzt eben das Image return werden
19 }
20}

Und weils so schön war nochmal einer ;)

1package com.rpggame.maps;
2
3import java.io.IOException;
4
5
6import android.content.Context;
7import android.graphics.Bitmap;
8import android.graphics.BitmapFactory;
9import android.view.View;
10
11public class DecodeRessources extends View{
12 public DecodeRessources(Context redBush1) {
13 super(redBush1);
14 // TODO Auto-generated constructor stub
15 }
16
17
18 public Bitmap decodeBitmap(String path) throws IOException{
19 return Bitmap.createBitmap(BitmapFactory.decodeStream(getResources().getAssets().open(path)));
20 }
21}


Also, wie man wahrscheinlich sehen kann, ruft RedBush die andere Klasse auf, aber es gibt keinen Context für RedBush :P

Könnt ihr mir dabei bitte helfen? :)

Antworten
Gelöschter Account
  • Forum-Beiträge: 294

13.07.2011, 11:04:47 via Website

View hat definitiv die Methode getContext(). Dort müsste aber auch getApplicationContext() gehen. Der Context ist ohnehin fast immer der selbe.

Ansonsten kannst Du jederzeit die Klassen um einen weiteren Konstruktor erweitern der das Attribut Context zusätzlich enthält.

Gruß
Harald

Antworten