当前位置: 首页>編程日記>正文

Android截图功能

Android截图功能

该功能支持所有控件的截图,但只能截取屏幕显示部分。

1.截图功能相关的方法:

  • setDrawingCacheEnabled:设置绘图缓存的可用状态。true表示打开,false表示关闭。

  • isDrawingCacheEnabled:判断该控件的绘图缓存是否可用。

  • setDrawingCacheQuality:设置绘图缓存的质量。

  • getDrawingCache:获取该控件的绘图缓存结果,返回值为Bitmap类型。

  • setDrawingCacheBackgroundColor:设置绘图缓存的背景颜色。大家可能会奇怪为何要提供该方法,因为绘图缓存默认背景色是黑色,如果不提前设置缓存的背景色,截图的结果就是黑乎乎一片,所以需要将背景色设置为默认颜色(通常为白色)。

2.截图功能步骤

<1>开始截图前,先调用setDrawingCacheEnabled方法,设置绘图缓存为可用状态。注意该方法在一开始就得调用,因为先开启绘图缓存,之后变更的界面才会记录到缓存中;如果先变更界面再开启绘图缓存,缓存里面就是空的。

<2>调用getDrawingCache方法获取缓存中的图像数据。

<3>完成截图,延迟若干毫秒后调用setDrawingCacheEnabled方法关闭绘图缓。如果接下来还要截图,就再次调用setDrawingCacheEnabled方法重新开启绘图缓存。

3.代码示例

基于上一篇《Android聊天室或者文字直播间效果,附带TextView滚动到最下边和实时追加字符串方法》中代码进行修改

布局文件

<?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:orientation="vertical"><TextViewandroid:id="@+id/tv"android:layout_width="match_parent"android:layout_height="100dp"android:gravity="left|bottom"android:layout_marginTop="100dp"android:lines="8"android:maxLines="8"android:scrollbars="vertical"android:text="快讯红色\n预警超\n强台风\n莫兰蒂\n即将\n登陆请\n居民关\n紧门窗备足粮草做好防汛救灾准备"/><Buttonandroid:id="@+id/bt"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="添加文字"/><Buttonandroid:id="@+id/bt2"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="截图"/><ImageViewandroid:id="@+id/iv"android:layout_width="200dp"android:layout_height="200dp"android:scaleType="fitXY"/>
</LinearLayout>

java代码

public class MainActivity extends AppCompatActivity {private TextView tv;private Button bt;private Button bt2;private SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");private Handler handler;private ImageView iv;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);tv = findViewById(R.id.tv);bt = findViewById(R.id.bt);bt2 = findViewById(R.id.bt2);iv = findViewById(R.id.iv);handler = new Handler();tv.setMovementMethod(new ScrollingMovementMethod());tv.setDrawingCacheEnabled(true);bt.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {tv.append("\n哈哈哈 "+simpleDateFormat.format(System.currentTimeMillis()));int scrollAmount = tv.getLayout().getLineTop(tv.getLineCount())- tv.getHeight();if (scrollAmount > 0) {tv.scrollTo(0, scrollAmount);}else {tv.scrollTo(0, 0);}}});bt2.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {Bitmap bitmap = tv.getDrawingCache();iv.setImageBitmap(bitmap);handler.postDelayed(new Runnable() {@Overridepublic void run() {tv.setDrawingCacheEnabled(false);tv.setDrawingCacheEnabled(true);}},200);}});}
}

 


https://www.fengoutiyan.com/post/13677.html

相关文章:

  • android登录注册功能实现
  • 微信的截图功能在哪
  • 安卓截屏工具
  • 屏幕截图
  • 手机截图方法
  • 电脑如何截屏截图
  • 微信截图快捷键
  • 安卓怎么截图
  • 鏡像模式如何設置在哪,圖片鏡像操作
  • 什么軟件可以把圖片鏡像翻轉,C#圖片處理 解決左右鏡像相反(旋轉圖片)
  • 手機照片鏡像翻轉,C#圖像鏡像
  • 視頻鏡像翻轉軟件,python圖片鏡像翻轉_python中鏡像實現方法
  • 什么軟件可以把圖片鏡像翻轉,利用PS實現圖片的鏡像處理
  • 照片鏡像翻轉app,java實現圖片鏡像翻轉
  • 什么軟件可以把圖片鏡像翻轉,python圖片鏡像翻轉_python圖像處理之鏡像實現方法
  • matlab下載,matlab如何鏡像處理圖片,matlab實現圖像鏡像
  • 圖片鏡像翻轉,MATLAB:鏡像圖片
  • 鏡像翻轉圖片的軟件,圖像處理:實現圖片鏡像(基于python)
  • canvas可畫,JavaScript - canvas - 鏡像圖片
  • 圖片鏡像翻轉,UGUI優化:使用鏡像圖片
  • Codeforces,CodeForces 1253C
  • MySQL下載安裝,Mysql ERROR: 1253 解決方法
  • 勝利大逃亡英雄逃亡方案,HDU - 1253 勝利大逃亡 BFS
  • 大一c語言期末考試試題及答案匯總,電大計算機C語言1253,1253《C語言程序設計》電大期末精彩試題及其問題詳解
  • lu求解線性方程組,P1253 [yLOI2018] 扶蘇的問題 (線段樹)
  • c語言程序設計基礎題庫,1253號C語言程序設計試題,2016年1月試卷號1253C語言程序設計A.pdf
  • 信奧賽一本通官網,【信奧賽一本通】1253:抓住那頭牛(詳細代碼)
  • c語言程序設計1253,1253c語言程序設計a(2010年1月)
  • 勝利大逃亡英雄逃亡方案,BFS——1253 勝利大逃亡
  • 直流電壓測量模塊,IM1253B交直流電能計量模塊(艾銳達光電)
  • c語言程序設計第三版課后答案,【渝粵題庫】國家開放大學2021春1253C語言程序設計答案
  • 18轉換為二進制,1253. 將數字轉換為16進制
  • light-emitting diode,LightOJ-1253 Misere Nim
  • masterroyale魔改版,1253 Dungeon Master
  • codeformer官網中文版,codeforces.1253 B
  • c語言程序設計考研真題及答案,2020C語言程序設計1253,1253計算機科學與技術專業C語言程序設計A科目2020年09月國家開 放大學(中央廣播電視大學)
  • c語言程序設計基礎題庫,1253本科2016c語言程序設計試題,1253電大《C語言程序設計A》試題和答案200901
  • 肇事逃逸車輛無法聯系到車主怎么辦,1253尋找肇事司機