Android Bitmap的截取及状态栏的隐藏和显示功能

 更新时间:2017年11月13日 11:13:27   作者:little_flf  
Bitmap是Android系统中的图像处理中最重要类之一。Bitmap可以获取图像文件信息,对图像进行剪切、旋转、缩放,压缩等操作,并可以以指定格式保存图像文件。这篇文章主要介绍了Android Bitmap的截取及状态栏的隐藏和显示功能,需要的朋友可以参考下

初识Bitmap

Bitmap是一个final类,因此不能被继承。Bitmap只有一个构造方法,且该构造方法是没有任何访问权限修饰符修饰,也就是说该构造方法是friendly,但是谷歌称Bitmap的构造方法是private(私有的),感觉有点不严谨。不管怎样,一般情况下,我们不能通过构造方法直接新建一个Bitmap对象。

Bitmap是Android系统中的图像处理中最重要类之一。Bitmap可以获取图像文件信息,对图像进行剪切、旋转、缩放,压缩等操作,并可以以指定格式保存图像文件。

正文如下:

最近项目中需要用到一个分享图片的功能,就随手记录了下来,这个方法是笨方法,如果各位大神有更好的方法,还请多多指教,小弟在此谢过!

1.项目中需要分享的界面长这个样子,大家可以看到,状态栏、标题栏、中间需要分享的部分、底部按钮

2.需要分享的图片长这个样子,底部状态栏、标题栏和底部按钮全部隐藏,接下来我就用最笨的方法开始操作了

3.首先是状态栏

getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); //隐藏状态栏 
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); //显示状态栏

 4.标题栏也很简单,这里主要写两种

继承Activity的用下面的方法

requestWindowFeature(Window.FEATURE_NO_TITLE);//去掉标题栏 

继承AppCompatActivity在onCreate调用getSupportActionBar().hide();

5.底部的Button直接Gone掉就可以了

6.现在到了中间截图的部分了

// 获取屏幕 
 View dView = getWindow().getDecorView(); 
 dView.setDrawingCacheEnabled(true); 
 dView.buildDrawingCache(); 
 Bitmap temBitmap = dView.getDrawingCache(); 

上面代码的意思是获取手机屏幕,并且开启缓存,又通过缓存来生成bitmap

7.对从缓存中取到的Bitmap做处理

Bitmap bitmap = Bitmap.createBitmap(bitmap,0,0,width,height); 

这里要注意的是,x,y的值增加了多少,相应的width,height就要减去多少,这步操作以后,就得到第二步中的效果。

PS:下面看下Android 显示隐藏状态栏实例代码

Android 显示隐藏状态栏,小说阅读界面要用到

/** 
 * 显示隐藏状态栏,全屏不变,只在有全屏时有效 
 * @param enable 
 */
private void setStatusBarVisibility(boolean enable) {
 WindowManager.LayoutParams lp = getWindow().getAttributes();
 if (enable) {
 lp.flags |= WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN;
 } else {
 lp.flags &= (~WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);
 }
 getWindow().setAttributes(lp);
 getWindow().clearFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);
}
/**
 * 设置是否全屏
 * @param enable
 */
private void setFullScreen(boolean enable) {
 WindowManager.LayoutParams lp = getWindow().getAttributes();
 if (enable) {
 lp.flags |= WindowManager.LayoutParams.FLAG_FULLSCREEN;
 } else {
 lp.flags &= (~WindowManager.LayoutParams.FLAG_FULLSCREEN);
 }
 getWindow().setAttributes(lp);
 getWindow().clearFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);
}

总结

以上所述是小编给大家介绍的Android Bitmap的截取及状态栏的隐藏和显示功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

相关文章

  • Android结合xml实现帧动画

    Android结合xml实现帧动画

    将一组动作相近的图片组合在一起,然后按照一定的时间来播放,就会形成一个动画,我们可以称之为帧动画。在 Android 中可通过结合 xml 的方式来轻松实现。
    2021-05-05
  • Android使用BottomTabBar实现底部导航页效果

    Android使用BottomTabBar实现底部导航页效果

    这篇文章主要介绍了Android使用BottomTabBar实现底部导航页效果,本文通过实例代码结合文字说明的形式给大家介绍的非常详细,需要的朋友参考下吧
    2018-03-03
  • Android开发中给EditText控件添加TextWatcher监听实现对输入字数的限制(推荐)

    Android开发中给EditText控件添加TextWatcher监听实现对输入字数的限制(推荐)

    这篇文章主要介绍了Android开发中给EditText控件添加TextWatcher监听实现对输入字数的限制(推荐)的相关资料,需要的朋友可以参考下
    2016-11-11
  • Android Intent-Filter匹配规则解析

    Android Intent-Filter匹配规则解析

    这篇文章主要介绍了Android Intent-Filter匹配规则的相关资料,帮助大家更好的进行Android开发,感兴趣的朋友可以了解下
    2020-12-12
  • Android RecyclerView曝光采集的实现方法

    Android RecyclerView曝光采集的实现方法

    这篇文章主要为大家详细介绍了Android RecyclerView曝光采集的实现方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-01-01
  • Flutter 实现整个App变为灰色的方法示例

    Flutter 实现整个App变为灰色的方法示例

    这篇文章主要介绍了Flutter 实现整个App变为灰色的方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-04-04
  • Android自定义View制作动态炫酷按钮实例解析

    Android自定义View制作动态炫酷按钮实例解析

    这篇文章主要为大家详细解析了Android自定义View制作动态炫酷按钮实例,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-07-07
  • Android优化提升应用启动速度及Splash页面的设计

    Android优化提升应用启动速度及Splash页面的设计

    这篇文章主要介绍了Android性能优化的一些相关资料,文章围绕提升应用启动速度及Splash页面的设计的内容展开介绍,需要的朋友可以参考一下,希望对你有所帮助
    2021-12-12
  • Android Build类的详解及简单实例

    Android Build类的详解及简单实例

    这篇文章主要介绍了Android Build类的详解及简单实例的相关资料,希望通过本文大家能够理解掌握这部分内容,需要的朋友可以参考下
    2017-08-08
  • kotlin使用Dagger2的过程全纪录

    kotlin使用Dagger2的过程全纪录

    Dagger2是一款基于Java注解,在编译阶段完成依赖注入的开源库,主要用于模块间解耦,方便进行测试。下面这篇文章主要给大家介绍了关于kotlin使用Dagger2的过程的相关资料,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧。
    2018-03-03

最新评论