Android实现截取当前屏幕图像并保存至SDCard特定目录下
2014-12-03 17:26
525 查看
第一步:main.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#FFFFFFFF" android:orientation="vertical" > <Button android:id="@+id/button01" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="截取当前屏幕" /> <TextView android:id="@+id/textview" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="100.0dip" android:text="这是当前屏幕" android:textSize="20.0sp" android:textColor="#FFFF0000" android:gravity="center" android:layout_gravity="center_horizontal" /> </LinearLayout>
第二步:MainActivity.java
import java.io.File; import java.io.FileOutputStream; import android.os.Bundle; import android.os.Environment; import android.app.Activity; import android.graphics.Bitmap; import android.widget.Button; import android.view.Display; import android.view.View; import android.view.Window; import android.view.WindowManager; public class MainActivity extends Activity { private Button button01; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); this.requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.main); initView(); button01.setOnClickListener(new View.OnClickListener(){ @Override public void onClick(View v) { button01.setVisibility(Button.GONE);//如果在截图的时候不想显示该按钮,则可以在截图开始时隐藏按钮 getAndSaveCurrentImage(); button01.setVisibility(Button.VISIBLE);//截图结束时显示按钮 } }); } //初始化组件 public void initView() { button01 = (Button)this.findViewById(R.id.button01); } //截取当前屏幕的图像并保存至SDCard特定目录下 public void getAndSaveCurrentImage() { WindowManager windowManager = this.getWindowManager(); Display display = windowManager.getDefaultDisplay(); int w = display.getWidth(); int h = display.getHeight(); Bitmap bitmap = Bitmap.createBitmap(w, h, Bitmap.Config.ARGB_8888); View decorView = this.getWindow().getDecorView(); decorView.setDrawingCacheEnabled(true); bitmap = decorView.getDrawingCache(); String savePath = getSDCardPath() + "/mcc/currentImage"; try { File path = new File(savePath); String filePath = savePath + "/mcc.png"; File file = new File(filePath); if(!path.exists()) { path.mkdirs(); } if(!file.exists()) { file.createNewFile(); } FileOutputStream fos = null; fos = new FileOutputStream(file); if(null != fos) { bitmap.compress(Bitmap.CompressFormat.PNG, 90, fos); fos.flush(); fos.close(); } } catch(Exception e) { e.printStackTrace(); } } //得到SDCard根目录 public String getSDCardPath() { File sdCardDir = null; if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) { sdCardDir = Environment.getExternalStorageDirectory(); } return sdCardDir.toString(); } }
第三步:在AndroidMainfest.xml文件中配置如下权限
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
相关文章推荐
- Android:实现截取当前屏幕图片并保存至SDCard
- 【Android】Android实现截取当前屏幕图片并保存至SDCard
- 【Android】Android实现截取当前屏幕图片并保存至SDCard
- Android之用UncaughtExceptionHandler实现保存崩溃日志到sdcard目录下的文件夹
- android 选择本地图片并截剪图片保存到,sdcard指定目录中
- android解压zip到sdcard,并读取解压缩后文件中的xml特定信息,并保存到数据库
- uwp开发:截取当前屏幕中需要的图像并保存至应用内存储
- 截取手机屏幕成图片保存到sdcard卡当中
- Windows Phone 7 截取当前屏幕保存图像的代码 推荐
- android中跳转相册,相机获取图片后截取图片并保存SDCARD
- android 选择本地图片并截剪图片保存到,sdcard指定目录中
- Windows Phone 7 截取当前屏幕保存图像的代码
- Android实现内存中数据保存到sdcard的方法
- android 选择本地图片并截剪图片保存到,sdcard指定目录中
- android 截取当前屏幕保存到sd卡中
- android 选择本地图片并截剪图片保存到,sdcard指定目录中
- Windows Phone 7 截取当前屏幕保存图像的代码
- Android截取当前屏幕保存到外部设备上
- Android(判断wifi是否开启,手机屏幕状态,sdcard是否被拔出,设置全屏)
- Android中截取当前屏幕的功能