という現象にぶつかったので原因を記録します。
試しにlayoutを作成します。
テスト
layout.xml
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
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="com.b_jung.memooo.MainActivity">
<ImageView
android:id="@+id/icon"
android:layout_gravity="center"
android:tint="@color/colorAccent"
android:layout_width="100dp"
android:layout_height="100dp"
android:src="@drawable/icon"
/>
</FrameLayout>
でMainはこんな感じに。
MainActivity.kt
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val view = findViewById<ImageView>(R.id.icon)
view.setColorFilter(ContextCompat.getColor(this, R.color.colorPrimaryDark))
}
}
そして実行してみたら…変わらない。
なんでだろう、と思いましたが、原因はtintでした。
どうやら、Android5ではxmlでImageViewにtintを入れたら、それが固定になるようですね。
以後はtintで入れるデフォの色は、初期化するときにsetColorFilterで入れています。これで解決。