2013-11-26 139 views
1

我有一个基本的应用程序,只使用触摸屏幕时出现的正方形和圆形。我希望能够保存这个创建的图像,设计建立在位图图像上,并显示在画布上,因此我希望能够将图像保存为移动设备。将创建的位图图像保存到内部存储器

public MyDraw(Context context) 
{ 
    super(context); 
    g = new Random(); 
    Bitmap.Config conf = Bitmap.Config.ARGB_8888; 
    bmp = Bitmap.createBitmap(1100, 1800, conf); 
} 

绘图代码

protected void onDraw(Canvas c) 
{ 
    c.drawBitmap(bmp, 0, 0, paint); 
    super.onDraw(c); 
} 

菜单代码

public boolean onCreateOptionsMenu(Menu menu) 
{ 
    super.onCreateOptionsMenu(menu); 
    MenuItem menu1 = menu.add(0, 0, Menu.NONE, "Filled Shape"); 
    MenuItem menu2 = menu.add(0, 1, Menu.NONE, "Outline Shape"); 
    MenuItem menu3 = menu.add(0, 2, Menu.NONE, "Rectangle"); 
    MenuItem menu4 = menu.add(0, 3, Menu.NONE, "Oval"); 
    MenuItem menu5 = menu.add(0, 4, Menu.NONE, "Save!"); 

    return true; 
} 

public boolean onOptionsItemSelected(MenuItem item) 
{ 
    switch (item.getItemId()) 

    { 
    case 0: 
     MyApp.fill = 0; 
     return true; 
    case 1: 
     MyApp.fill = 1; 
     return true; 
    case 2: 
     MyApp.shape = 0; 
     return true; 
    case 3: 
     MyApp.shape = 1; 
     return true; 
    case 4: 
     // MyDraw.bmp; 
    default: 
     return super.onOptionsItemSelected(item); 

    } 
} 

我希望能在菜单上单击保存按钮和位图有被创建以保存到手机内部存储器(最好是图库)。

回答

0

你需要做这样的事情:

MediaStore.Images.Media.insertImage(getContentResolver(), yourBitmap, yourTitle , yourDescription); 

您也需要

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

添加到您的manifext.xml

0

如果您拨打:

mView.getDrawingCache(); 

http://developer.android.com/reference/android/view/View.html#getDrawingCache()

它将返回当前视图的位图,然后你可以拨打:

mBitmap.compress(...); 

http://developer.android.com/reference/android/graphics/Bitmap.html#compress(android.graphics.Bitmap.CompressFormat,INT,java.io. OutputStream)

将位图保存到磁盘。确保你已经在视图中启用了图形缓存,否则getDrawingCache()将返回null。

相关问题