2010-10-02 7 views
3

Je travaille sur l'affichage d'un ensemble d'images, puis si les utilisateurs le souhaitent, avoir la possibilité de sauvegarder l'image sur la carte SD. J'ai besoin d'aide pour les sauvegarder dans un stockage externe. Est-ce que quelqu'un peut m'aider avec ça?Android: Image dans l'emplacement

Grille:

public void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.main); 

GridView gridview = (GridView) findViewById(R.id.gridview); 
gridview.setAdapter(new ImageAdapter(this)); 

gridview.setOnItemClickListener(new OnItemClickListener() { 
    public void onItemClick(AdapterView<?> parent, View v, int position, long id) { 
     Toast.makeText(HelloGridView.this, "" + position, Toast.LENGTH_SHORT).show(); 
    } 
}); 

ImageAdapter:

public class ImageAdapter extends BaseAdapter { 
private Context mContext; 

public ImageAdapter(Context c) { 
    mContext = c; 
} 

public int getCount() { 
    return mThumbIds.length; 
} 

public Object getItem(int position) { 
    return null; 
} 

public long getItemId(int position) { 
    return 0; 
} 

// create a new ImageView for each item referenced by the Adapter 
public View getView(int position, View convertView, ViewGroup parent) { 
    ImageView imageView; 
    if (convertView == null) { // if it's not recycled, initialize some attributes 
     imageView = new ImageView(mContext); 
     imageView.setLayoutParams(new GridView.LayoutParams(85, 85)); 
     imageView.setScaleType(ImageView.ScaleType.CENTER_CROP); 
     imageView.setPadding(8, 8, 8, 8); 
    } else { 
     imageView = (ImageView) convertView; 
    } 

    imageView.setImageResource(mThumbIds[position]); 
    return imageView; 
} 

// references to our images 
private Integer[] mThumbIds = { 
     R.drawable.sample_2, R.drawable.sample_3, 
     R.drawable.sample_4, R.drawable.sample_5, 
     R.drawable.sample_6, R.drawable.sample_7, 
     R.drawable.sample_0, R.drawable.sample_1, 
     R.drawable.sample_2, R.drawable.sample_3, 
     R.drawable.sample_4, R.drawable.sample_5, 
     R.drawable.sample_6, R.drawable.sample_7, 
     R.drawable.sample_0, R.drawable.sample_1, 
     R.drawable.sample_2, R.drawable.sample_3, 
     R.drawable.sample_4, R.drawable.sample_5, 
     R.drawable.sample_6, R.drawable.sample_7 
}; 

Répondre

3

Salut Je n'ai pas utilisé le code que je vous donne dans le cadre d'une application mais je l'ai utilisé ceci pour déboguer les bitmaps générés lors de l'exécution dans l'une de mes applications.

try { 
      FileOutputStream out = new FileOutputStream("/sdcard/test2.png"); 
      mBitmap.compress(Bitmap.CompressFormat.PNG, 90, out); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 

avec ce code aussi longtemps que vous avez un bitmap, il vous suffit ce + l'autorisation manifeste

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

espoir qui fait l'affaire pour vous

Jason