截图视图有一些错误:无法找到布局

时间:2013-11-11 16:42:24

标签: android android-layout io android-view

我尝试截屏ViewR.id.layout无法解析或不是字段

然后我尝试import com.example.mye_card.R;然后清理但不工作

    btnsave.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {

            View v2 = findViewById(R.id.layout);
            v2.setDrawingCacheEnabled(true);
            Bitmap bmp = Bitmap.createBitmap(v2.getDrawingCache());
            v2.setDrawingCacheEnabled(false);

            try {
                Date d = new Date();
                String filename  = (String)DateFormat.format("kkmmss-MMddyyyy"
                    , d.getTime());
                File dir = new File(Environment.getExternalStorageDirectory(), "/Pictures/" + filename );
                FileOutputStream out = new FileOutputStream(dir);
                ByteArrayOutputStream bos = new ByteArrayOutputStream();
                bmp.compress(Bitmap.CompressFormat.JPEG, 100, bos);
                out.write(bos.toByteArray());
                Toast.makeText(getApplicationContext(), "Save card!", Toast.LENGTH_SHORT).show();
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            }  catch (IOException e) {
                e.printStackTrace();
            }
        }
    });

错误行

View v2 = findViewById(R.id.layout);

关于导入

package com.example.mye_card;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Date;

1 个答案:

答案 0 :(得分:0)

问题可能是因为您无法在onClick事件中的上下文点找到ID。

转到.java文件的顶部,在Class开始之后,您可能会看到一些变量,因此创建一个新变量:

View vDrawing = null;

然后,搜索您的onCreate方法,并声明您的变量:

vDrawing = (View) findViewById(R.id.layout);

现在,从findViewById()事件中删除您的声明onClick,然后使用之前声明为vDrawing的变量,而不是使用v2变量。