2013-11-26 138 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。

相關問題