当前位置: 首页 > wzjs >正文

网站流量好难做徐州seo排名公司

网站流量好难做,徐州seo排名公司,seo优化网站模板,做互联网网站赚钱吗要在 Android 13 上实现图片选择、显示并添加裁剪功能,我们可以使用第三方裁剪库如 UCrop。以下是完整实现方案: 1. 添加依赖 在 build.gradle (Module) 中添加: dependencies {// 基础依赖implementation androidx.activity:activity-ktx:1…

要在 Android 13 上实现图片选择、显示并添加裁剪功能,我们可以使用第三方裁剪库如 UCrop。以下是完整实现方案:
1. 添加依赖
build.gradle (Module) 中添加:

dependencies {// 基础依赖implementation 'androidx.activity:activity-ktx:1.7.0'implementation 'androidx.fragment:fragment-ktx:1.5.7'implementation 'com.github.bumptech.glide:glide:4.14.2'annotationProcessor 'com.github.bumptech.glide:compiler:4.14.2'// 图片裁剪库implementation 'com.github.yalantis:ucrop:2.2.8'// 可选,用于处理Android 13+照片选择器implementation 'androidx.activity:activity-ktx:1.7.0'
}

ImagePickerWithCropActivity.kt

import android.Manifest
import android.app.Activity
import android.content.Intent
import android.content.pm.PackageManager
import android.net.Uri
import android.os.Build
import android.os.Bundle
import android.provider.MediaStore
import android.widget.Button
import android.widget.ImageView
import android.widget.Toast
import androidx.activity.result.contract.ActivityResultContracts
import androidx.appcompat.app.AppCompatActivity
import androidx.core.content.ContextCompat
import com.bumptech.glide.Glide
import com.bumptech.glide.signature.ObjectKey
import com.yalantis.ucrop.UCrop
import smartconnection.com.smartconnect.R
import java.io.Fileclass ImagePickerWithCropActivity : AppCompatActivity() {private lateinit var imageView: ImageViewprivate lateinit var selectButton: Button// 临时文件用于存储裁剪后的图片private val cropFile by lazy {File(externalCacheDir, "cropped_image.jpg")}// 图片选择启动器private val pickImageLauncher = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result ->if (result.resultCode == Activity.RESULT_OK) {result.data?.data?.let { uri ->// 启动裁剪startCrop(uri)}}}// 裁剪结果启动器private val cropImageLauncher = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result ->if (result.resultCode == Activity.RESULT_OK) {result.data?.let { intent ->UCrop.getOutput(intent)?.let { uri ->// 显示裁剪后的图片displayImage(uri)}}} else if (result.resultCode == UCrop.RESULT_ERROR) {result.data?.let {val cropError = UCrop.getError(it)Toast.makeText(this, "裁剪错误: ${cropError?.message}", Toast.LENGTH_SHORT).show()}}}// 权限请求启动器private val requestPermissionLauncher = registerForActivityResult(ActivityResultContracts.RequestPermission()) { isGranted ->if (isGranted) {openImagePicker()} else {Toast.makeText(this,"需要权限才能访问图片",Toast.LENGTH_SHORT).show()}}override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)setContentView(R.layout.activity_image_picker_crop)imageView = findViewById(R.id.imageView)selectButton = findViewById(R.id.selectButton)selectButton.setOnClickListener {checkPermissionAndPickImage()}}private fun checkPermissionAndPickImage() {// Android 13+使用READ_MEDIA_IMAGES,低版本使用READ_EXTERNAL_STORAGEval permission = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {Manifest.permission.READ_MEDIA_IMAGES} else {Manifest.permission.READ_EXTERNAL_STORAGE}when {ContextCompat.checkSelfPermission(this,permission) == PackageManager.PERMISSION_GRANTED -> {openImagePicker()}shouldShowRequestPermissionRationale(permission) -> {Toast.makeText(this,"需要权限才能访问您的图片",Toast.LENGTH_SHORT).show()requestPermissionLauncher.launch(permission)}else -> {requestPermissionLauncher.launch(permission)}}}private fun openImagePicker() {val intent = Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI)pickImageLauncher.launch(intent)}private fun startCrop(sourceUri: Uri) {val destinationUri = Uri.fromFile(cropFile)UCrop.of(sourceUri, destinationUri).withAspectRatio(1f, 1f) // 1:1比例.withMaxResultSize(1000, 1000) // 最大尺寸.withOptions(getCropOptions()) // 自定义选项.start(this, cropImageLauncher)}private fun getCropOptions(): UCrop.Options {val options = UCrop.Options()options.setHideBottomControls(true) // 显示底部控制栏options.setFreeStyleCropEnabled(true) // 允许自由裁剪options.setStatusBarColor(ContextCompat.getColor(this, R.color.white))options.setToolbarColor(ContextCompat.getColor(this,  R.color.white))options.setToolbarTitle("图片裁剪")return options}private fun displayImage(uri: Uri) {Glide.with(this).load(uri).signature(ObjectKey(System.currentTimeMillis().toString())) // 使用时间戳作为签名.centerCrop().into(imageView)}
}

activity_image_picker_crop.xml:

<?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"android:padding="16dp"android:gravity="center"><ImageViewandroid:id="@+id/imageView"android:layout_width="300dp"android:layout_height="300dp"android:scaleType="centerCrop"android:background="#f0f0f0"android:contentDescription="Cropped image" /><Buttonandroid:id="@+id/selectButton"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginTop="24dp"android:text="选择并裁剪图片" /></LinearLayout>

AndroidManifest.xml配置:

  <!--相册--><uses-permission android:name="android.permission.READ_MEDIA_IMAGES" /><!-- 对于 Android 13 以下版本的回退权限 --><uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"android:maxSdkVersion="32" />

在 AndroidManifest.xml 中添加 UCrop 所需的配置

<manifest xmlns:android="http://schemas.android.com/apk/res/android"package="your.package.name"><application><!-- 其他你的Activity声明 --><!-- UCrop 所需的Activity声明 --><activityandroid:name="com.yalantis.ucrop.UCropActivity"android:screenOrientation="portrait"android:theme="@style/Theme.AppCompat.Light.NoActionBar"/><!-- 其他配置 --></application></manifest>
http://www.dtcms.com/wzjs/385975.html

相关文章:

  • 四川电子有限公司 - 手机网站360营销
  • 郑州网站设计价格福州seo优化
  • 网站标题的选择新东方在线教育平台官网
  • 销售推广方案seo网站推广有哪些
  • 下做图软件在哪个网站下载怎么做网站优化排名
  • 旅游门户网站模板下载竞价托管优化公司
  • 东昌网站建设公司西安百度推广代理商
  • seo关键词排名优化推荐电脑系统优化软件排行榜
  • 中山百度网站推广网站建设运营
  • 上海专业做网站公司电话seo优化关键词分类
  • 建建设网站的seo薪酬如何
  • 如何做网站搜索引擎优化郑州seo排名公司
  • 网站制作中企动力优社群营销的方法和技巧
  • 搭建网站详细步骤资源网站优化排名软件
  • 工程公司简介范文seo托管服务
  • wordpress电影站品牌软文案例
  • 网站标题几个字合适国外免费建站网站
  • 东莞英文网站制作网站页面优化内容包括哪些
  • 做任务挣钱的网站app河北高端网站建设
  • 天津建站国内最新消息新闻
  • 做网站激励语推广方案范例
  • wordpress用什么主机好关键词优化推广公司哪家好
  • 云南昆明网站建设sem工资
  • 门户网站优化方案福州百度seo排名软件
  • 天津市网站建设+网页制作微信crm
  • 广西南宁网站建设哪家好推广产品最好的方式
  • 可信网站验证服务证书重大军事新闻
  • asp网站 并发数开源seo软件
  • 亳州网站网站建设网站推广方式
  • 做网站英语老师的简历教育培训机构