增加配置背景图的按钮,修订以前的错误
This commit is contained in:
@@ -19,6 +19,7 @@ android {
|
||||
vectorDrawables {
|
||||
useSupportLibrary = true
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
buildTypes {
|
||||
|
||||
@@ -33,6 +33,13 @@ import org.json.JSONObject
|
||||
import com.squareup.moshi.Moshi
|
||||
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(
|
||||
val model: String,
|
||||
@@ -88,7 +95,6 @@ fun extractLabels(responseBody: String): List<String>? {
|
||||
}
|
||||
|
||||
class MainActivity : AppCompatActivity() {
|
||||
|
||||
private lateinit var inputEditText: EditText
|
||||
private lateinit var configButton: Button
|
||||
private lateinit var submitToZhiPuAIButton: Button
|
||||
@@ -351,6 +357,23 @@ class MainActivity : AppCompatActivity() {
|
||||
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")
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -101,9 +101,10 @@
|
||||
|
||||
<Button
|
||||
android:id="@+id/chooseButton"
|
||||
android:text="上传图片"
|
||||
android:text="选择图片"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content" />
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_centerInParent="true"/>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user