J'ai beaucoup tourne sur internet afin d'essayer de trouver une reponse a ma question, mais je la je suis perdu...
Si j'ai reussi a avoir un ANE qui fonctionne sur Android, et meme a utiliser avec success les classes AsyncTask en java, je suis maintenant completement bloque lorsqu'il s'agit de reussir a afficher une image a l'ecran depuis mon extension native.
Tout d'abord, il semble que j'ai besoin de certaines infos pour afficher mon image (Activity, Context et la vue principale), je les recupere donc au lancement de l'ane comme ceci:
public class MyContext extends FREContext
{
@Override
public void dispose()
{
}
@Override
public Map<String, FREFunction> getFunctions()
{
Configs.activity = this.getActivity();
Configs.context = Configs.activity.getApplicationContext();
Configs.decorView = Configs.activity.getWindow().getDecorView();
Map<String, FREFunction> map = new HashMap<String, FREFunction>();
map.put("init" , new InitFunction());
map.put("oneFunction" , new myFunction());
return map;
}
}
Ensuite, j'appelle cette classe pour charger une image temoins sur le web, une fois le chargement termine, je veux l'afficher a l'ecran
blic class GraphicLoader extends AsyncTask<URL, String, String>
{
public ImageView view;
private URL url;
private int width;
private int height;
// Constructor
public GraphicLoader (String url, int width, int height)
{
this.width = width;
this.height = height;
try
{
this.url = new URL (url);
}
catch (MalformedURLException e)
{
e.printStackTrace();
}
}
@Override
protected String doInBackground(URL... params)
{
final BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = false;
try
{
this.view = new ImageView (Configs.context);
view.setImageBitmap(BitmapFactory.decodeStream(url.openConnection().getInputStream(), null, options));
RelativeLayout relativeLayout = new RelativeLayout(Configs.context);
RelativeLayout.LayoutParams rlp = new RelativeLayout.LayoutParams(
RelativeLayout.LayoutParams.MATCH_PARENT,
RelativeLayout.LayoutParams.MATCH_PARENT);
RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(
RelativeLayout.LayoutParams.WRAP_CONTENT,
RelativeLayout.LayoutParams.WRAP_CONTENT);
lp.addRule(RelativeLayout.CENTER_IN_PARENT);
view.setLayoutParams(lp);
relativeLayout.addView(view);
Configs.activity.setContentView(relativeLayout, rlp);
}
catch (IOException e)
{
Configs.debug = Configs.debug + " GraphicLoaded error 2 " + e.getMessage();
e.printStackTrace();
}
return null;
}
Mon application se ferme alors brusquement sur la ligne "Configs.activity.setContentView(relativeLayout, rlp);"
J'avoue que je n'arrive pas bien a comprendre quel processus je dois suivre pour afficher cette image, j'ai regarde les differents tutoriaux sur android, mais rien n'y fait.
Sauriez vous m'expliquer mon erreur s'il vous plait ?
Merci.