2016-10-01 2 views
1

J'utilise le code suivant pour charger mon image dans un widget Android ImageView:Charger les images de l'actif dans Widget RemoteView

remoteViews.setImageViewResource(R.id.widget_image, R.drawable.image); 

Je dois enregistrer l'image dans le dossier drawable. Est-il possible d'enregistrer l'image dans les actifs à la place et le charger à remoteView?

Répondre

0

En utilisant BitmapFactory, vous pouvez charger une image dans assets/ comme Bitmap d'un InputStream fourni par AssetManager, puis utilisez la méthode RemoteViews#setImageViewBitmap() pour le mettre sur votre widget.

Par exemple:

RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.layout.widget); 
... 

try { 
    InputStream is = context.getAssets().open("image.jpg"); 
    Bitmap bmp = BitmapFactory.decodeStream(is); 

    remoteViews.setImageViewBitmap(R.id.widget_image, bmp); 
} 
catch (IOException e) { 
    e.printStackTrace(); 
} 
0

Voici la solution:

imageView = (ImageView)findViewById(R.id.iv); 
     try { 
      // get input stream 
      InputStream ims = getAssets().open("download.jpg"); 
      // load image as Drawable 
      Drawable d = Drawable.createFromStream(ims, null); 
      // set image to ImageView 
      imageView.setImageDrawable(d); 
     } 
     catch(IOException ex) { 
      return; 
     }