Не работает динамичное добавление изображение в потоке на Android

Есть приложение на Android, что взаимодействует с сервером. В процессе взаимодействия нужно динамически добавить на экран изображения, используя как ресурсы приложения, так и загруженное с сервера изображение. Но от только при запуске активности и после загрузки экран остается пустым. Подскажите, пожалуйста, в чем может быть дело?

fight_activity.xml

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/area"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="Fight">

</androidx.constraintlayout.widget.ConstraintLayout>

Fight.kt

class Fight : Activity() {
    var adress ="192.168.1.109"
    var port = 8080
    
    lateinit var game_screen: ConstraintLayout

    @ExperimentalStdlibApi
    @RequiresApi(Build.VERSION_CODES.LOLLIPOP)
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_fight)
        game_screen=findViewById<ConstraintLayout>(R.id.area)
     
        thread { ClientHandler(adress, port, this).run() }
    }
}

class ClientHandler(adress: String, port: Int, a: Fight) : Runnable {
        val socket = Socket(adress, port)
        val dout = DataOutputStream(socket.getOutputStream())
        val inputStream = socket.getInputStream()
        val activity = a

        override fun run() {
            val answer=get_answer()//получение ответа с сервера
            activity.runOnUiThread(Runnable(){
                    var new_view= ImageView(activity)
                    new_view.setScaleType(ImageView.ScaleType.FIT_XY)
                    new_view.setImageDrawable(activity.getDrawable(R.drawable.control_fone))
                    new_view.layoutParams = (ViewGroup.LayoutParams(width, height ))
                    new_view.layout(0, 0, width, height)
                    activity.game_screen.addView(new_view)

                    new_view= ImageView(activity) 
                    new_view.setImageBitmap(
                             BitmapFactory.decodeFile(
                             Environment.getExternalStoragePublicDirectory( 
                             Environment.DIRECTORY_PICTURES).path 
                             + "/"+answer))
                    new_view.layoutParams = (ViewGroup.LayoutParams(height, width))
                    new_view.layout(x, y, x+width, y+height)
                    new_view.setScaleType(ImageView.ScaleType.FIT_XY)
                    activity.game_screen.addView(new_view)

          }
}


Ответы (0 шт):