我尝试截屏View
但R.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;
答案 0 :(得分:0)
问题可能是因为您无法在onClick
事件中的上下文点找到ID。
转到.java文件的顶部,在Class
开始之后,您可能会看到一些变量,因此创建一个新变量:
View vDrawing = null;
然后,搜索您的onCreate
方法,并声明您的变量:
vDrawing = (View) findViewById(R.id.layout);
现在,从findViewById()
事件中删除您的声明onClick
,然后使用之前声明为vDrawing
的变量,而不是使用v2
变量。