android webView的快照与屏幕的截屏。部分代码如下:
[html]
/**
* 截取webView可视区域的截图
* @param webView 前提:WebView要设置webView.setDrawingCacheEnabled(true);
* @return
*/
private Bitmap captureWebViewVisibleSize(WebView webView){
Bitmap bmp = webView.getDrawingCache();
return bmp;
}
/**
* 截取webView可视区域的截图
* @param webView 前提:WebView要设置webView.setDrawingCacheEnabled(true);
* @return
*/
private Bitmap captureWebViewVisibleSize(WebView webView){
Bitmap bmp = webView.getDrawingCache();
return bmp;
}
这个方法只截取屏幕中显示出来部分的webView画面,未显示的部分不会被截取。
[html]
/**
* 截取webView快照(webView加载的整个内容的大小)
* @param webView
* @return
*/
private Bitmap captureWebView(WebView webView){
Picture snapShot = webView.capturePicture();
Bitmap bmp = Bitmap.createBitmap(snapShot.getWidth(),snapShot.getHeight(), Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bmp);
snapShot.draw(canvas);
return bmp;
}
/**
* 截取webView快照(webView加载的整个内容的大小)
* @param webView
* @return
*/ www.2cto.com
private Bitmap captureWebView(WebView webView){
Picture snapShot = webView.capturePicture();
Bitmap bmp = Bitmap.createBitmap(snapShot.getWidth(),snapShot.getHeight(), Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bmp);
snapShot.draw(canvas);
return bmp;
}
这个看好与上一个是不同的,他是截取webView的整个页面,未显示的也会被截取。
[html]
/**
* 截屏
* @param context
* @return
*/
private Bitmap captureScreen(Activity context){
View cv = context.getWindow().getDecorView();
Bitmap bmp = Bitmap.createBitmap(cv.getWidth(), cv.getHeight(),Config.ARGB_8888);
Canvas canvas = new Canvas(bmp);
cv.draw(canvas);
return bmp;
}
/**
* 截屏
* @param context
* @return
*/
private Bitmap captureScreen(Activity context){
View cv = context.getWindow().getDecorView();
Bitmap bmp = Bitmap.createBitmap(cv.getWidth(), cv.getHeight(),Config.ARGB_8888);
Canvas canvas = new Canvas(bmp);
cv.draw(canvas);
return bmp;
}
/**
* 截取可见屏幕部分的view视图
* @param activity
* @return
*/
public static Bitmap shotScreen(Activity activity) {
View view = activity.getWindow().getDecorView();
Display display = activity.getWindowManager().getDefaultDisplay();
view.layout(0, 0, display.getWidth(), display.getHeight());
// 允许当前窗口保存缓存信息,这样getDrawingCache()方法才会返回一个Bitmap
view.setDrawingCacheEnabled(true);
Bitmap bmp = Bitmap.createBitmap(view.getDrawingCache());
return bmp;
}
看看下面例子:
/**
* 此demo实现了截屏并将截图放到指定的控件上缩放显示
* 技术要点:
* 1.截屏
* 2.缩放功能
* @author: 严程
* @CreateDate: 2012-08-09
*/
public class Demo4Activity extends Activity {
private Button but;
private ImageButton img;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
but = (Button)findViewById(R.id.but);
but.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// 实现截屏
View view = Demo4Activity.this.getWindow().getDecorView();
// 启动缓存
view.setDrawingCacheEnabled(true);
// 接收数据
Bitmap bitmap = view.getDrawingCache();
img.setImageBitmap(zoomBitmap(bitmap));
}
});
img = (ImageButton)findViewById(R.id.img);
img.setBackgroundColor(Color.RED);
}
/**
* 实现图缩放
* @param target
* @return
*/
public Bitmap zoomBitmap(Bitmap target){
// 得到图片的高宽
int width = target.getWidth();
int height = target.getHeight();
Matrix matrix = new Matrix();
// 算出图片的高宽缩放比例
float scaleWidth = ((float)300)/ width;
float scaleHeight = ((float)300)/ height;
matrix.postScale(scaleWidth, scaleHeight);
// Bitmap result = Bitmap.createBitmap(target,0,0,width,height, matrix,true);
return Bitmap.createBitmap(target,0,0,width,height, matrix,true);
}
}
分享到:
相关推荐
Android进行截图,通过把view装换成bitmap的方式,可以截取屏幕外的部分
android view的旋转 源码 android view的旋转android view的旋转android view的旋转android view的旋转
实现了获取界面部分view,生成bitmap图片,也就是view截图,获取指定view的截图,适用于分享截图等
Android View 事件传递与消费,用于view事件传递的理解。
去网上百度了很多,却没有一个是自定义正方形,期间自己画图,去思索了好久,在不断的尝试下终于,搞定了可以移动的正方形。如果有问题欢迎指正,本人QQ731712249,也可加入交流群:586620031
里面代码可以直接运行,Android截屏功能实现,重写View类似QQ截屏,非自带截屏,主要是ImageTatilor这个类的实现,对屏幕截取有兴趣的可以研究研究一下。
主要介绍了 Android截屏截图方法汇总(Activity、View、ScrollView、ListView、RecycleView、WebView截屏截图)的相关资料,需要的朋友可以参考下
截屏:通过View绘制缓冲获得Bitmap,然后写到文件中,完成截屏的功能; 录屏:通过MediaRecorder进行video record,基本过程如下
自定义的悬浮View,内容可以放任意布局,可以随手指拖动,悬浮后会自动吸附到手机左、右屏幕边上,可以控制是否自动吸附。
Android View 3D旋转
屏幕亮度小demo,可以实现:1.系统屏幕亮度自适应,2.改变进度条手动设置屏幕亮度
用于截图的各种方法 android的各种方法实现
Compose 和 Android 传统View 互相调用 示例 Demo Sample,以及在双层嵌套(原生View嵌套Compose,Compose中又嵌套原生View)的情况下,在最外层原生View中,怎么获取到Compose内部的原生View。 具体详见我的博客 : ...
通过自定义view实现屏幕手写签名效果,可以上一步,清空,可以保存签名为图片格式到本地,适配Android6.0及以上动态权限申请。
Android View转成Bitmap
该源代码演示Android中如何对View(如button)进行截图和如何对整个Activity截图。同时演示怎样在截图上写上水印,演示如何把截图保存成文件。
android图片处理(压缩,保存,截屏,view转化为bitmap)相关函数 ImageUtils
本资源提供对于ViewGroup下所以子view的遍历,以及调用Views都过tag或者Widget的类查找返回一个List<View> 使用方法可见示例: 子View遍历 ViewGroup root = (ViewGroup) findViewById(android.R.id.content); ...
检测屏幕触摸是否正常,代码十分简单,亲测有效 super(context, attrs, defStyleAttr); unSelectRect = new ArrayList(); selectRect = new ArrayList(); //获取屏幕的宽高 DisplayMetrics displayMetrics = ...