কোটলিন ব্যবহার:
আপনি একটি এক্সটেনশন ফাংশন তৈরি করতে পারেন বা কেবল setCompoundDrawablesWithIntrinsicBounds
সরাসরি ব্যবহার করতে পারেন ।
fun TextView.leftDrawable(@DrawableRes id: Int = 0) {
this.setCompoundDrawablesWithIntrinsicBounds(id, 0, 0, 0)
}
আপনার যদি অঙ্কনযোগ্যকে পুনরায় আকার দেওয়ার দরকার হয় তবে আপনি এই এক্সটেনশন ফাংশনটি ব্যবহার করতে পারেন।
textView.leftDrawable(R.drawable.my_icon, R.dimen.icon_size)
fun TextView.leftDrawable(@DrawableRes id: Int = 0, @DimenRes sizeRes: Int) {
val drawable = ContextCompat.getDrawable(context, id)
val size = resources.getDimensionPixelSize(sizeRes)
drawable?.setBounds(0, 0, size, size)
this.setCompoundDrawables(drawable, null, null, null)
}
সত্যই অভিনব হতে, একটি মোড়ক তৈরি করুন যা আকার এবং / অথবা রঙ পরিবর্তনের অনুমতি দেয়।
textView.leftDrawable(R.drawable.my_icon, colorRes = R.color.white)
fun TextView.leftDrawable(@DrawableRes id: Int = 0, @DimenRes sizeRes: Int = 0, @ColorInt color: Int = 0, @ColorRes colorRes: Int = 0) {
val drawable = drawable(id)
if (sizeRes != 0) {
val size = resources.getDimensionPixelSize(sizeRes)
drawable?.setBounds(0, 0, size, size)
}
if (color != 0) {
drawable?.setColorFilter(color, PorterDuff.Mode.SRC_ATOP)
} else if (colorRes != 0) {
val colorInt = ContextCompat.getColor(context, colorRes)
drawable?.setColorFilter(colorInt, PorterDuff.Mode.SRC_ATOP)
}
this.setCompoundDrawables(drawable, null, null, null)
}