2016-10-01 5 views
1

ich den folgenden Code bin mit meinem Bild in Android-Widget laden ImageView:Foto von der Assets in Widget Remote

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

Ich habe das Bild in drawable Ordnern zu speichern. Ist es möglich, das Bild stattdessen in Assets zu speichern und es unter remoteView zu laden?

Antwort

0

Mit BitmapFactory, können Sie ein Bild in assets/ als Bitmap von einem InputStream von AssetManager vorgesehen laden und verwenden Sie dann die RemoteViews#setImageViewBitmap() Methode es auf Ihrem Widget einzustellen.

Zum Beispiel:

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

Hier ist die Lösung:

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; 
     }