增加配置背景图的按钮,修订以前的错误
This commit is contained in:
@@ -11,14 +11,15 @@ import androidx.appcompat.app.AppCompatActivity
|
||||
import com.google.gson.Gson
|
||||
import com.google.gson.reflect.TypeToken
|
||||
|
||||
import android.app.Activity
|
||||
import android.content.Intent
|
||||
import android.graphics.Bitmap
|
||||
import android.graphics.BitmapFactory
|
||||
import android.net.Uri
|
||||
import android.provider.MediaStore
|
||||
import androidx.activity.result.ActivityResultLauncher
|
||||
import androidx.activity.result.contract.ActivityResultContracts
|
||||
import android.graphics.drawable.BitmapDrawable
|
||||
import java.io.InputStream
|
||||
import android.widget.RelativeLayout
|
||||
|
||||
|
||||
class SecondActivity : AppCompatActivity() {
|
||||
private lateinit var etApiButtonName: EditText
|
||||
@@ -29,9 +30,13 @@ class SecondActivity : AppCompatActivity() {
|
||||
private lateinit var etApiModel: EditText
|
||||
private lateinit var btnSave: Button
|
||||
private lateinit var llConfigList: LinearLayout
|
||||
private lateinit var backgroundLayout: RelativeLayout
|
||||
private var configs = mutableListOf<APIConfig>()
|
||||
private var editingId: Long? = null
|
||||
private lateinit var imagePickerLauncher: ActivityResultLauncher<Intent>
|
||||
|
||||
companion object {
|
||||
private const val REQUEST_CODE_PICK_IMAGE = 1000
|
||||
}
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
setTheme(androidx.appcompat.R.style.Theme_AppCompat)
|
||||
@@ -54,27 +59,30 @@ class SecondActivity : AppCompatActivity() {
|
||||
}
|
||||
}
|
||||
|
||||
backgroundLayout = findViewById(R.id.mainLinearLayout)
|
||||
// 创建背景图
|
||||
setContentView(R.layout.activity_second)
|
||||
|
||||
val btnSelectImage: Button = findViewById(R.id.chooseButton)
|
||||
|
||||
val getContent = registerForActivityResult(ActivityResultContracts.GetContent()) { uri: Uri? ->
|
||||
uri?.let {
|
||||
try {
|
||||
val inputStream: InputStream = contentResolver.openInputStream(uri)!!
|
||||
val bitmap: Bitmap = BitmapFactory.decodeStream(inputStream)
|
||||
backgroundLayout.background = BitmapDrawable(resources, bitmap)
|
||||
} catch (e: Exception) {
|
||||
e.printStackTrace()
|
||||
imagePickerLauncher = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result ->
|
||||
if (result.resultCode == Activity.RESULT_OK && result.data != null) {
|
||||
val selectedImageUri: Uri? = result.data?.data
|
||||
selectedImageUri?.let { uri ->
|
||||
val bitmap = getBitmapFromUri(uri)
|
||||
// 使用bitmap更新背景或其他操作
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
btnSelectImage.setOnClickListener {
|
||||
getContent.launch("image/*")
|
||||
val chooseButton: Button = findViewById(R.id.chooseButton)
|
||||
chooseButton.setOnClickListener {
|
||||
val intent = Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI)
|
||||
intent.type = "image/*"
|
||||
imagePickerLauncher.launch(intent)
|
||||
}
|
||||
}
|
||||
|
||||
private fun getBitmapFromUri(uri: Uri): Bitmap? {
|
||||
val inputStream: InputStream? = contentResolver.openInputStream(uri)
|
||||
return BitmapFactory.decodeStream(inputStream)
|
||||
}
|
||||
|
||||
private fun initViews() {
|
||||
etApiButtonName = findViewById(R.id.etApiButtonName)
|
||||
|
||||
Reference in New Issue
Block a user