📜  如何在 Android 中获取子视图截图?

📅  最后修改于: 2022-05-13 01:54:28.916000             🧑  作者: Mango

如何在 Android 中获取子视图截图?

Android 中的子视图可以是屏幕上存在的具有父布局或父视图的任何 UI 元素。它只是视图中的视图。假设,我们在活动中创建了一个 TextView。由于此 TextView 存在于主布局中,因此它是主布局的子视图。同样,布局内的其他元素是其子视图。子视图屏幕截图在各种应用程序中用作确认。在支付应用程序中,显示交易详情的布局屏幕截图可用作共享的参考收据。类似地,在游戏中,显示高分、排名、统计数据等的布局用于在社交应用程序上进行共享。

Android 中的子视图屏幕截图

因此,在本文中,我们将向您展示如何在 Android 中截取子视图的屏幕截图。以下是 IDE 准备就绪后要遵循的步骤。

分步实施

第 1 步:在 Android Studio 中创建一个新项目

要在 Android Studio 中创建新项目,请参阅如何在 Android Studio 中创建/启动新项目。我们在 Kotlin 中演示了该应用程序,因此请确保在创建新项目时选择Kotlin作为主要语言。

第 2 步:使用 activity_main.xml 文件

导航到app > res > layout > activity_main.xml并将以下代码添加到该文件。下面是activity_main.xml文件的代码。我们将截取作为子视图的 TextView 的屏幕截图,因此我们在活动布局中声明 TextView。创建一个按钮来执行截取屏幕截图的操作。

XML


  
    
  
    


Kotlin
package org.geeksforgeeks.subviewscreenshot
  
import android.content.ContentValues
import android.graphics.Bitmap
import android.net.Uri
import android.os.Build
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.os.Environment
import android.provider.MediaStore
import android.widget.Button
import android.widget.TextView
import android.widget.Toast
import java.io.File
import java.io.FileOutputStream
import java.io.OutputStream
  
class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
  
        // Declaring and initializing the TextView
        // and the Button from the layout file
        val mTextView = findViewById(R.id.text_view_1)
        val mButton = findViewById


第 3 步:使用MainActivity.kt 文件

转到MainActivity.kt文件并参考以下代码。下面是MainActivity.kt文件的代码。在下面的主代码中,我们实现了获取子视图屏幕截图并将其保存在设备上的方法。为了保存生成的图像,开发了一个函数来将图像保存在设备上。请参阅 Circular Crop an Image and Save it to the File in Android 了解如何将图像存储在设备上。代码中添加了注释以更详细地理解代码。

科特林

package org.geeksforgeeks.subviewscreenshot
  
import android.content.ContentValues
import android.graphics.Bitmap
import android.net.Uri
import android.os.Build
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.os.Environment
import android.provider.MediaStore
import android.widget.Button
import android.widget.TextView
import android.widget.Toast
import java.io.File
import java.io.FileOutputStream
import java.io.OutputStream
  
class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
  
        // Declaring and initializing the TextView
        // and the Button from the layout file
        val mTextView = findViewById(R.id.text_view_1)
        val mButton = findViewById

输出:

您可以看到,当单击按钮时,屏幕截图被截取并存储在设备上。下面是输出的预览。