2010-11-11 21 views

Respuesta

25

"new image resources"?

Los recursos de la imagen forman parte de la carpeta/res/drawable dentro de su paquete de aplicaciones .apk. No puede agregar recursos de imágenes "nuevos" durante el tiempo de ejecución.

¿Hay algún otro caso de uso que tengas en mente?

Editado después de pósters explicación:

Usted tiene que agregar archivos multimedia a Media tienda con el fin de ser visto por galería de widgets. Use MediaScanner. Yo uso este envoltorio conveniente en mi código:

public class MediaScannerWrapper implements 
MediaScannerConnection.MediaScannerConnectionClient { 
    private MediaScannerConnection mConnection; 
    private String mPath; 
    private String mMimeType; 

    // filePath - where to scan; 
    // mime type of media to scan i.e. "image/jpeg". 
    // use "*/*" for any media 
    public MediaScannerWrapper(Context ctx, String filePath, String mime){ 
     mPath = filePath; 
     mMimeType = mime; 
     mConnection = new MediaScannerConnection(ctx, this); 
    } 

    // do the scanning 
    public void scan() { 
     mConnection.connect(); 
    } 

    // start the scan when scanner is ready 
    public void onMediaScannerConnected() { 
     mConnection.scanFile(mPath, mMimeType); 
     Log.w("MediaScannerWrapper", "media file scanned: " + mPath); 
    } 

    public void onScanCompleted(String path, Uri uri) { 
     // when scan is completes, update media file tags 
    } 
} 

A continuación, crear una instancia MediaScannerWrapper y empezar con scan(). Podría modificarlo para manejar más de un archivo a la vez. Sugerencia: pase la Lista de rutas de archivos y luego recorra mConnection.scanFile.

+0

sí, estoy hablando de imágenes almacenadas en el almacenamiento externo. – eyecreate

+0

Entonces, ¿cómo se conecta esto a un widget de la galería para mostrar? – eyecreate

+0

El widget de galería muestra todos los archivos que se agregan a Media Store. –

1

Enviar emisión a MediaStore Content Provider cuando se agrega un archivo

sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.fromFile(imageAdded))); 

de trabajo de los dispositivos antes KitKat

sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, 
       Uri.parse("file://"+ Environment.getExternalStorageDirectory()))); 

también echar un vistazo a this

Trabajando en Lolipop y también debería resolver problemas de kitkat.

ContentValues values = new ContentValues(); 
values.put(MediaStore.Images.Media.DATA,"file path"); 
values.put(MediaStore.Images.Media.MIME_TYPE,"image/jpeg"); 
mContext.getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,values); 

Agregar permiso.

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
Cuestiones relacionadas