【问题标题】:static reference to the non-static method对非静态方法的静态引用
【发布时间】:2013-11-25 17:11:50
【问题描述】:

在 saveImage() 处,第一行说:

" Cannot make a static reference to the non-static method  getDrawingCache() 
from the type View " 

我该如何解决这个问题?

public class ButtonDraw extends Activity {

    public Canvas myCanvas;
    private BlackPixel blackPixel;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.paintingfile);


          blackPixel = new BlackPixel(this);
          setContentView(blackPixel);
          blackPixel.requestFocus();



    } 
       public void saveImage()
        {
          Bitmap bitmap = BlackPixel.getDrawingCache();   //

            try 
                {

                    FileOutputStream fos = openFileOutput("name.png", Context.MODE_PRIVATE);
                    bitmap.compress(CompressFormat.JPEG, 10, fos);

                    fos.close();                            
                } 
                catch (Exception e) 
                {
                    e.printStackTrace();
                }

      }

}



public boolean onOptionsItemSelected(MenuItem item){

        switch(item.getItemId())
        {

        case R.id.menu_paintingfileToast:
            saveImage();
            Toast mToast=Toast.makeText(ButtonDraw.this, "Save Succesfull", Toast.LENGTH_LONG);
            mToast.show();

            return true;
        }

        return false;
    }

【问题讨论】:

  • how can i fix that,不要在非静态方法中引用静态方法

标签: android reference static non-static


【解决方案1】:

您使用了BlackPixel 类而不是您的字段blackPixel

只需在该行中用小写 b 写 blackPixel

【讨论】:

  • 不客气,请确保在您的问题解决后选择一个答案。
  • 您有什么想法可以将图片保存在手机上吗?确切的文件夹? : FileOutputStream fos = openFileOutput("name.png", Context.MODE_PRIVATE);
  • 我应该如何选择答案?
  • @user3002074 在左侧,您可以单击答案旁边的一个小复选标记。这就是您选择答案的方式。不,我不知道图像的位置,您必须为此打开另一个问题。 :)
猜你喜欢
  • 1970-01-01
  • 2011-06-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多