1

我尝试截图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;
4

1 回答 1

0

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

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

View vDrawing = null;

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

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

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

于 2013-11-12T11:18:26.970 回答