diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 49213a9..2b4b3cb 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -19,6 +19,7 @@ android { vectorDrawables { useSupportLibrary = true } + } buildTypes { diff --git a/app/src/main/java/com/example/flomo_ai/MainActivity.kt b/app/src/main/java/com/example/flomo_ai/MainActivity.kt index d073147..cc825c3 100644 --- a/app/src/main/java/com/example/flomo_ai/MainActivity.kt +++ b/app/src/main/java/com/example/flomo_ai/MainActivity.kt @@ -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? { } 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") diff --git a/app/src/main/java/com/example/flomo_ai/SecondActivity.kt b/app/src/main/java/com/example/flomo_ai/SecondActivity.kt index fb36b18..6f1558b 100644 --- a/app/src/main/java/com/example/flomo_ai/SecondActivity.kt +++ b/app/src/main/java/com/example/flomo_ai/SecondActivity.kt @@ -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() private var editingId: Long? = null + private lateinit var imagePickerLauncher: ActivityResultLauncher + + 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) diff --git a/app/src/main/res/layout/activity_second.xml b/app/src/main/res/layout/activity_second.xml index 70294f7..d900594 100644 --- a/app/src/main/res/layout/activity_second.xml +++ b/app/src/main/res/layout/activity_second.xml @@ -101,9 +101,10 @@