我找到了一些允许截取活动截图的代码。虽然,我遇到了一个问题。由于缺乏更好的术语,它似乎“出现故障”。使用here中的一些代码,我将其设置到位图的位置,并使用setimagebitmap将其放入图像视图中。当我按下按钮截取屏幕截图时,它第一次运行得很好。然而,第二次使图像显示无限量的按钮,下降并变小。我在onclicklistener的开头尝试了destroydrawingcache,但这会让第二次按钮点击时应用程序崩溃。我甚至尝试用setimagebitmap(null)清除图像视图。
这是完成所有工作的活动。
public class MainAvtivity extends Activity
{
ImageView imgView;
Button btnScreenshot;
View rootView;
Bitmap bmap;
public void onCreate(Bundle icicle)
{
super.onCreate(icicle);
setContentView(R.layout.main)
imgView = (ImageView)findViewById(R.id.imageView);
btnScreenshot = (Button)findViewById(R.id.btnScreenshot);
rootView = findViewById(android.R.id.content).getRootView();
btnScreenshot.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v){
imgView.setImageBitmap(null);
rootView.destroyDrawinCache();
bmap = takeScreenshot();
setImgView(bmap);
}
}
public Bitmap takeScreenshot()
{
rootView.setDrawingCacheEnabled(true);
return rootView.getDrawingCache();
}
public void setImgView(Bitmap bitmap)
{
imgView.setImageBitmap(bitmap);
}
}
答案 0 :(得分:1)
这是我编辑过的代码。这只是几行。
public class MainAvtivity extends Activity
{
ImageView imgView;
Button btnScreenshot;
View rootView;
Bitmap bmap;
public void onCreate(Bundle icicle)
{
super.onCreate(icicle);
setContentView(R.layout.main)
imgView = (ImageView)findViewById(R.id.imageView);
btnScreenshot = (Button)findViewById(R.id.btnScreenshot);
rootView = findViewById(android.R.id.content).getRootView();
btnScreenshot.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v){
imgView.setImageBitmap(null);
bmap = takeScreenshot();
setImgView(bmap);
}
}
public Bitmap takeScreenshot()
{
rootView.setDrawingCacheEnabled(true);
rootView.buildDrawingCache(true);
Bitmap b = Bitmap.createBitmap(rootView.getDrawingCache());
rootView.setDrawingCacheEnabled(false);
return b;
}
public void setImgView(Bitmap bitmap)
{
imgView.setImageBitmap(bitmap);
}
}