[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' }