我有一个基本的应用程序,它只使用触摸屏幕时出现的正方形和圆形。我希望能够保存这个创建的图像,设计是基于位图图像,并在画布上显示,所以我希望能够将其作为图像保存到移动设备。
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 :(得分:0)
你需要做这样的事情:
MediaStore.Images.Media.insertImage(getContentResolver(), yourBitmap, yourTitle , yourDescription);
您还需要添加
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
到manifext.xml
。
答案 1 :(得分: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。