增加配置背景图的按钮,修订以前的错误

This commit is contained in:
2024-09-29 21:56:55 +08:00
parent 419adf4108
commit f3ffbde4a6
4 changed files with 54 additions and 21 deletions

View File

@@ -19,6 +19,7 @@ android {
vectorDrawables { vectorDrawables {
useSupportLibrary = true useSupportLibrary = true
} }
} }
buildTypes { buildTypes {

View File

@@ -33,6 +33,13 @@ import org.json.JSONObject
import com.squareup.moshi.Moshi import com.squareup.moshi.Moshi
import com.squareup.moshi.kotlin.reflect.KotlinJsonAdapterFactory import com.squareup.moshi.kotlin.reflect.KotlinJsonAdapterFactory
import android.graphics.Bitmap
import android.graphics.BitmapFactory
import android.graphics.drawable.BitmapDrawable
import android.net.Uri
import android.widget.LinearLayout
import java.io.InputStream
// 定义请求体数据类 // 定义请求体数据类
data class ChatRequest( data class ChatRequest(
val model: String, val model: String,
@@ -88,7 +95,6 @@ fun extractLabels(responseBody: String): List<String>? {
} }
class MainActivity : AppCompatActivity() { class MainActivity : AppCompatActivity() {
private lateinit var inputEditText: EditText private lateinit var inputEditText: EditText
private lateinit var configButton: Button private lateinit var configButton: Button
private lateinit var submitToZhiPuAIButton: Button private lateinit var submitToZhiPuAIButton: Button
@@ -351,6 +357,23 @@ class MainActivity : AppCompatActivity() {
tabLayout.addTab(this) tabLayout.addTab(this)
} }
} }
// 创建背景图
val mainLinearLayout: LinearLayout = findViewById(R.id.mainLinearLayout)
// 从Intent中获取Uri
val selectedImageUri: Uri? = intent.data
selectedImageUri?.let { uri ->
val bitmap = getBitmapFromUri(uri)
bitmap?.let {
mainLinearLayout.background = BitmapDrawable(resources, it)
}
}
}
private fun getBitmapFromUri(uri: Uri): Bitmap? {
val inputStream: InputStream? = contentResolver.openInputStream(uri)
return BitmapFactory.decodeStream(inputStream)
} }
@SuppressLint("SetTextI18n") @SuppressLint("SetTextI18n")

View File

@@ -11,14 +11,15 @@ import androidx.appcompat.app.AppCompatActivity
import com.google.gson.Gson import com.google.gson.Gson
import com.google.gson.reflect.TypeToken import com.google.gson.reflect.TypeToken
import android.app.Activity
import android.content.Intent
import android.graphics.Bitmap import android.graphics.Bitmap
import android.graphics.BitmapFactory import android.graphics.BitmapFactory
import android.net.Uri import android.net.Uri
import android.provider.MediaStore
import androidx.activity.result.ActivityResultLauncher
import androidx.activity.result.contract.ActivityResultContracts import androidx.activity.result.contract.ActivityResultContracts
import android.graphics.drawable.BitmapDrawable
import java.io.InputStream import java.io.InputStream
import android.widget.RelativeLayout
class SecondActivity : AppCompatActivity() { class SecondActivity : AppCompatActivity() {
private lateinit var etApiButtonName: EditText private lateinit var etApiButtonName: EditText
@@ -29,9 +30,13 @@ class SecondActivity : AppCompatActivity() {
private lateinit var etApiModel: EditText private lateinit var etApiModel: EditText
private lateinit var btnSave: Button private lateinit var btnSave: Button
private lateinit var llConfigList: LinearLayout private lateinit var llConfigList: LinearLayout
private lateinit var backgroundLayout: RelativeLayout
private var configs = mutableListOf<APIConfig>() private var configs = mutableListOf<APIConfig>()
private var editingId: Long? = null 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?) { override fun onCreate(savedInstanceState: Bundle?) {
setTheme(androidx.appcompat.R.style.Theme_AppCompat) 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) imagePickerLauncher = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result ->
if (result.resultCode == Activity.RESULT_OK && result.data != null) {
val getContent = registerForActivityResult(ActivityResultContracts.GetContent()) { uri: Uri? -> val selectedImageUri: Uri? = result.data?.data
uri?.let { selectedImageUri?.let { uri ->
try { val bitmap = getBitmapFromUri(uri)
val inputStream: InputStream = contentResolver.openInputStream(uri)!! // 使用bitmap更新背景或其他操作
val bitmap: Bitmap = BitmapFactory.decodeStream(inputStream)
backgroundLayout.background = BitmapDrawable(resources, bitmap)
} catch (e: Exception) {
e.printStackTrace()
} }
} }
} }
val chooseButton: Button = findViewById(R.id.chooseButton)
btnSelectImage.setOnClickListener { chooseButton.setOnClickListener {
getContent.launch("image/*") 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() { private fun initViews() {
etApiButtonName = findViewById(R.id.etApiButtonName) etApiButtonName = findViewById(R.id.etApiButtonName)

View File

@@ -101,9 +101,10 @@
<Button <Button
android:id="@+id/chooseButton" android:id="@+id/chooseButton"
android:text="上传图片" android:text="选择图片"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" /> android:layout_height="wrap_content"
android:layout_centerInParent="true"/>
</LinearLayout> </LinearLayout>