override fun onCreate()

in RenderScriptMigrationSample/app/src/main/java/com/android/example/rsmigration/MainActivity.kt [79:173]


    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        // Load bitmap resources
        mInputImage = loadBitmap(R.drawable.data)

        // Set up image processors
        val imageProcessors = mutableListOf(
            // RenderScript intrinsics
            RenderScriptImageProcessor(this, useIntrinsic = true),
            // RenderScript script kernels
            RenderScriptImageProcessor(this, useIntrinsic = false),
            // Vulkan compute pipeline
            VulkanImageProcessor(this))

        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
            // RenderEffect
            imageProcessors.add(RenderEffectImageProcessor())
        }
        mImageProcessors = imageProcessors.toTypedArray()

        mImageProcessors.forEach { processor ->
            processor.configureInputAndOutput(mInputImage, NUMBER_OF_OUTPUT_IMAGES)
        }
        mCurrentProcessor = mImageProcessors[0]

        // Set up image view
        mImageView = findViewById(R.id.imageView)
        mLatencyTextView = findViewById(R.id.latencyText)

        // Set up seek bar
        mSeekBar = findViewById(R.id.seekBar)
        mSeekBar.setOnSeekBarChangeListener(object : OnSeekBarChangeListener {
            override fun onProgressChanged(seekBar: SeekBar, progress: Int, fromUser: Boolean) {
                startUpdateImage(progress)
            }

            override fun onStartTrackingTouch(seekBar: SeekBar) {}
            override fun onStopTrackingTouch(seekBar: SeekBar) {}
        })
        mSeekBar.progress = 50

        // Set up spinner for image processor selection
        mProcessorSpinner = findViewById(R.id.processorSpinner)
        ArrayAdapter.createFromResource(
            this,
            R.array.processor_array,
            android.R.layout.simple_spinner_item
        ).also { adapter ->
            adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item)
            mProcessorSpinner.adapter = adapter
        }
        mProcessorSpinner.onItemSelectedListener = object : AdapterView.OnItemSelectedListener {
            override fun onItemSelected(
                parent: AdapterView<*>?,
                view: View?,
                position: Int,
                id: Long
            ) {
                mCurrentProcessor = mImageProcessors[position]
                startUpdateImage(mSeekBar.progress)
            }

            override fun onNothingSelected(parent: AdapterView<*>?) {}
        }

        // Set up spinner for filter mode selection
        mFilterSpinner = findViewById(R.id.filterSpinner)
        ArrayAdapter.createFromResource(
            this,
            R.array.filter_array,
            android.R.layout.simple_spinner_item
        ).also { adapter ->
            adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item)
            mFilterSpinner.adapter = adapter
        }
        mFilterSpinner.onItemSelectedListener = object : AdapterView.OnItemSelectedListener {
            override fun onItemSelected(
                parent: AdapterView<*>?,
                view: View?,
                position: Int,
                id: Long
            ) {
                mFilterMode = FilterMode.values()[position]
                startUpdateImage(mSeekBar.progress)
            }

            override fun onNothingSelected(parent: AdapterView<*>?) {}
        }

        // Set up benchmark button
        mBenchmarkButton = findViewById(R.id.benchmarkButton)
        mBenchmarkButton.setOnClickListener { startBenchmark() }
    }