Android截屏
16lz
2022-06-08
本篇文章主要介绍了关于Android方面的截屏操作,下面是主要的代码,最近也思考一个问题,怎么实现一个截屏后,把图片发送至一个服务器端呢,正在思考中希望有哪位有识之士给解答,有源码的更好,谢谢了!!
Android截屏代码如下:
<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="your.record.namespace" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="15" /><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <application android:icon="@drawable/ic_launcher" android:label="@string/app_name" > <activity android:name=".Record_GifActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application></manifest>
package your.record.namespace;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.text.SimpleDateFormat;import java.util.Date;import java.util.Locale;import android.app.Activity;import android.graphics.Bitmap;import android.graphics.Rect;import android.os.Environment;import android.util.Log;import android.view.View;import android.widget.Toast;public class ScreenShot {// 获取指定Activity的截屏,保存到png文件private static Bitmap takeScreenShot(Activity activity) {// View是你需要截图的ViewView view = activity.getWindow().getDecorView();view.setDrawingCacheEnabled(true);view.buildDrawingCache();Bitmap b1 = view.getDrawingCache();// 获取状态栏高度Rect frame = new Rect();activity.getWindow().getDecorView().getWindowVisibleDisplayFrame(frame);int statusBarHeight = frame.top;System.out.println(statusBarHeight);// 获取屏幕长和高int width = activity.getWindowManager().getDefaultDisplay().getWidth();int height = activity.getWindowManager().getDefaultDisplay().getHeight();// 去掉标题栏// Bitmap b = Bitmap.createBitmap(b1, 0, 25, 320, 455);Bitmap b = Bitmap.createBitmap(b1, 0, statusBarHeight, width, height- statusBarHeight);view.destroyDrawingCache();return b;}// 保存到sdcardprivate static void savePic(Bitmap b, String strFileName) {FileOutputStream fos = null;try {fos = new FileOutputStream(strFileName);if (null != fos){b.compress(Bitmap.CompressFormat.PNG, 90, fos);fos.flush();fos.close();}} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}// 程序入口public static void shoot(Activity a,int i) {String string="/mnt/sdcard/";ScreenShot.savePic(ScreenShot.takeScreenShot(a), string+i+".png");}}
package your.record.namespace;import java.util.List;import android.app.Activity;import android.app.ActivityManager;import android.app.ActivityManager.RunningTaskInfo;import android.content.ComponentName;import android.content.Context;import android.os.Bundle;import android.os.Environment;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;public class Record_GifActivity extends Activity { /** Called when the activity is first created. */int i=0; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Button Begin_Record=(Button)findViewById(R.id.Begin_Record); //绑定监听器 Begin_Record.setOnClickListener(new ButtonListener()); String ImagePath = Environment.getDataDirectory().toString(); System.out.println("=========="+ImagePath); } class ButtonListener implements OnClickListener{public void onClick(View v) {// TODO Auto-generated method stubi++;ScreenShot.shoot(Record_GifActivity.this, i);} }}
更多相关文章
- Android(安卓)开发获取程序启动次数
- Android之使用传感器获取相应数据
- 获取Android当前网络类型(2g、3g、4g、wifi)以及手机型号、版本号
- 获取Android设备的方向
- Android(安卓)截取屏幕图片并保存
- context对于android的重要意义
- 获取android手机内部存储空间和外…
- Android移动应用基础学习——第四章数据存储
- SharedPreferences的用法及指南