Сохранить вид как растровое изображение, я получаю только черный экран

У меня есть приложение для рисования, и у меня есть методы для сохранения нарисованных картинок. Но я получаю только черное растровое изображение с кнопкой сохранения. В чем проблема ?

Есть мой xml







 







  


  

 

И моя основная деятельность:

public class aktivita extends Activity{
Button btn;
public LinearLayout mContent;
krouzky mTicTacToeView = null;
public static String tempDir;
public File mypath;
 public static Bitmap mBitmap;
public static int width;
public static int height;
public static float x;
public static float y;
public static float X;
public static float Y;
public static double vzdalenost;
 public String current = null;
 private String uniqueId;
 public krouzky mSignature;
 public View mView;




public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.zaznam_ran);      
   krouzky.t = 0;






   File directory = new File(Environment.getExternalStorageDirectory() + "/Images");
   if(!directory.exists())

       directory.mkdir();

   uniqueId = getTodaysDate() + "_" + getCurrentTime();
   current = uniqueId + ".png";


   mypath= new File(directory,current);

   mContent = (LinearLayout) findViewById(R.id.linearLayout);

   mSignature = new krouzky(this, null);
   mSignature.setBackgroundColor(Color.TRANSPARENT);
   mContent.addView(mSignature, LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);

   mView = mContent;





    Display display = getWindowManager().getDefaultDisplay();
     width = (display.getWidth());
     height = (display.getHeight());        
    mTicTacToeView = (krouzky) this.findViewById(R.id.pntr);





     Button btn6 = (Button) findViewById(R.id.button6);

        btn6.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                    Log.v("log_tag", "Panel Saved");

                        mView.setDrawingCacheEnabled(true);
                       save(v);





                }


        });

}
     private boolean prepareDirectory()
    {
        try
        {
            if (makedirs())
            {
                return true;
            }
            else 
            {
                return false;
            }
        } 
        catch (Exception e)
        {
            e.printStackTrace();
            Toast.makeText(this, "Could not initiate File System.. Is Sdcard mounted properly?", 1000).show();
            return false;
        }
    }

    private boolean makedirs()  
    {
        File tempdir = new File(tempDir);
        if (!tempdir.exists())
            tempdir.mkdirs();

        if (tempdir.isDirectory())
        {
            File[] files = tempdir.listFiles();
            for (File file : files)
            {
                if (!file.delete())
                {
                    System.out.println("Failed to delete " + file);
                }
            }
        }
        return (tempdir.isDirectory());
    }   

метод для сохранения

    public  void save(View v)
    {
        Log.v("log_tag", "Width: " + v.getWidth());
        Log.v("log_tag", "Height: " + v.getHeight());
        if(mBitmap == null)
        {
            mBitmap =  Bitmap.createBitmap (width, height, Bitmap.Config.RGB_565);
        }
        Canvas canvas = new Canvas(mBitmap);
        try
        {

            FileOutputStream mFileOutStream = new FileOutputStream(mypath);

            v.draw(canvas);
            mBitmap.compress(Bitmap.CompressFormat.PNG, 90, mFileOutStream);
            mFileOutStream.flush();
            mFileOutStream.close();


        }
        catch(Exception e)
        {
            Log.v("log_tag", e.toString());
        }
    }

Моя проблема была решена, но у меня есть одна маленькая деталь. Мое приложение закрывается, когда я меняю xml. к этому.










  


  






Ответы на вопрос(4)

Ваш ответ на вопрос