package com.bsqq.jietu;
import java.io.File;
import java.io.FileOutputStream;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
import android.os.Bundle;
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Rect;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends Activity implements OnClickListener{
private Button button,getPicBtn;
private String path;
private ImageView iv;
private Bitmap getBbitmap;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button = (Button) findViewById(R.id.my_button);
button.setOnClickListener(this);
getPicBtn = (Button) findViewById(R.id.getPicBtn);
getPicBtn.setOnClickListener(this);
iv= (ImageView) findViewById(R.id.iv);
}
//截图的方法
private void getShotPic(View v) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd_HH-mm-ss",
Locale.US);
String fname = "/sdcard/" + sdf.format(new Date()) + ".png";
path = fname;
View view = v.getRootView();
view.setDrawingCacheEnabled(true);
view.buildDrawingCache();
Bitmap bitmap = view.getDrawingCache();
// 获取状态栏高度
Rect frame = new Rect();
getWindow().getDecorView().getWindowVisibleDisplayFrame(frame);
int statusBarHeight = frame.top;
System.out.println(statusBarHeight);
// 获取屏幕长和高
int width = getWindowManager().getDefaultDisplay().getWidth();
int height = getWindowManager().getDefaultDisplay().getHeight();
// 去掉标题栏
Bitmap b = Bitmap.createBitmap(bitmap, 0, statusBarHeight, width,
height - statusBarHeight);
if (b != null) {
System.out.println("bitmapgot!");
try {
FileOutputStream out = new FileOutputStream(fname);
b.compress(Bitmap.CompressFormat.PNG, 100, out);
System.out.println("file" + fname + "outputdone.");
Toast.makeText(getApplicationContext(), "截图完成并保存好", 0).show();
} catch (Exception e) {
e.printStackTrace();
}
} else {
System.out.println("bitmap is NULL!");
}
}
private Bitmap getDiskBitmap(String pathString){
getBbitmap = null;
try {
File file = new File(pathString);
if (file.exists()) {
getBbitmap = BitmapFactory.decodeFile(pathString);
}
} catch (Exception e) {
}
return getBbitmap;
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.my_button:
getShotPic(v);
break;
case R.id.getPicBtn:
getDiskBitmap(path);
iv.setImageBitmap(getBbitmap);
break;
default:
break;
}
}
}
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello_world" />
<Button
android:id="@+id/my_button"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="截图" >
</Button>
<Button
android:id="@+id/getPicBtn"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="根据路径获取本地图片" >
</Button>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/iv"/>
</LinearLayout>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />