Kotlin

[android : kotlin] 코틀린 ImageView사용 예제

코틀린 ImageView

ImageView는 사용자에게 이미지를 보여주기위해 사용된다. src 속성과 scrCompat 속성을 사용하여 이미지를 적용할 수 있다. srcCompat 속성은 벡터 방식의 이미지(SVG, PSD)를 처리할 수 있다.  이 부분은 자바에서 개발 할때와 차이가 없다.  setImageResource()메소드를 사용하여 이미지 접근이 가능하다.ImageView에 이미지을 출력하기 위해서는 먼저 안드로이드 프로젝트 안에 Drawable 리소스에 이미지가 등록되어 있어야 한다. Drawable 리소스 등록 방법은 여러 가지가 있지만, 본인이 가지고 있는 이미지 파일을 복사(Ctl + C) 후에app\src\main\res\drawable경로에 복사해주는 방법이 가장 간단하다. 리소스에 추가될 이미지의 이름에 있어서 주의가 필요하다. 이미지 이름으로 대문자와 특수문자는 사용하면 안된다.

[MainActivity.kt]

package study.example

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import kotlinx.android.synthetic.main.activity_main.*

class MainActivity : AppCompatActivity() {

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


        //백터 이미지
        //imageView.setImageResource(R.drawable.ic_launcher_foreground)

        //res/drawable/폴더에 임으로 추가한 cat_1.png 파일
        imageView.setImageResource(R.drawable.cat_1)

    }
}

[activity_main.xml]

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">


    <ImageView
        android:id="@+id/imageView"
        android:layout_width="200dp"
        android:layout_height="200dp"
        android:layout_gravity="center"
        app:srcCompat="@android:drawable/ic_lock_lock" />

    <ImageView
        android:id="@+id/imageView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/cat_1" />
</LinearLayout>

[build.gradle(:app)] 

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'

android {
    compileSdkVersion 29

    defaultConfig {
        applicationId "edu.kotlin.study"
        minSdkVersion 22
        targetSdkVersion 29
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    implementation fileTree(dir: "libs", include: ["*.jar"])
    implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
    implementation 'androidx.core:core-ktx:1.3.1'
    implementation 'androidx.appcompat:appcompat:1.2.0'
    implementation 'androidx.constraintlayout:constraintlayout:2.0.1'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'androidx.test.ext:junit:1.1.2'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'

}

Leave a Reply

error: Content is protected !!