ImageBitmap ve ImageVector karşılaştırması

En yaygın iki resim biçimi türü, kafes ve vektör resimlerdir.

Kafes grafik biçimi pikseller içerir: bir renk (kırmızı, yeşil, mavi ve alfa değerlerinden oluşur). Çok sayıda resim yerleştirirken pikselleri bir araya getirirse, fotoğraf gibi çok ayrıntılı bir görüntü oluşturulabilir. CEVAP Kafes grafiğin çözünürlüğü sabittir (sabit sayıda piksel vardır). Bunun anlamı, resmin boyutunu artırdığınızda ayrıntıları kaybolur ve pikselleştirme meydana gelir. Kafes grafik biçimlerine örnek olarak JPEG, PNG ve WEBP verilebilir.

JPEG dosyası örneği
Şekil 1: JPEG dosyası örneği

Vektör resimleri ise bir resmin ölçeklenebilir matematiksel temsilleridir. görsel öğe bulunur. Vektör, bir öğenin nasıl çizileceğini açıklayan ekrandaki resimdir. Örneğin, bir çizgi, nokta ya da dolgu. Bir vektörü ölçeklendirirken kalite kaybı yaşamayacak, matematiksel formül farklı komutlar arasındaki ilişkiyi ele alacağız. ImageVector için iyi bir örnek Malzeme Sembolleridir, çünkü bunların tümü matematiksel formüllerden yararlanırız.

Vektör örneği (dosya uzantıları .xml biçimindedir veya Kotlin kodunda tanımlanmıştır)
Şekil 2: Vektör örneği (dosya uzantıları .xml biçimindedir veya Kotlin kodunda tanımlanmıştır)

ImageBitmap

Compose'da bir kafes resim (genellikle Bitmap olarak adlandırılır) yüklenebilir ImageBitmap örneğine bağlanır. BitmapPainter ise bu örnekte yer alan üç nokta kullanıyor.

Basit kullanım alanlarında painterResource() kullanılabilir. bir ImageBitmap oluşturuyor ve bir Painter nesnesi döndürüyor (bu örnekte BitmapPainter):

Image(
    painter = painterResource(id = R.drawable.dog),
    contentDescription = stringResource(id = R.string.dog_content_description)
)

Daha fazla özelleştirmeye ihtiyacınız varsa (örneğin, özel boyama uygulaması) kullanıyorsanız ve ImageBitmap öğesine erişmeniz gerekiyorsa bu dosyayı yükleyebilirsiniz kullanabilirsiniz:

val imageBitmap = ImageBitmap.imageResource(R.drawable.dog)

ImageVector

Ekrana ImageVector çizmekten VectorPainter sorumludur. ImageVector, SVG komutlarının bir alt kümesini destekler. Her resim vektör olarak temsil edilir (örneğin, kameranızla çektiğiniz fotoğraflar bir vektöre dönüştürülmesi) sağlar.

Mevcut bir vektörü içe aktararak özel bir ImageVector oluşturabilirsiniz çekilebilir XML dosyası (içe aktarma aracı kullanılarak Android Studio'ya içe aktarılır) veya sınıfını uygulama ve yol komutlarını manuel olarak verme.

Basit kullanım durumlarında, painterResource() öğesinin ImageBitmap sınıfı, ImageVectors için de geçerlidir ve Sonuç olarak VectorPainter. painterResource(), şunların yüklenmesini gerçekleştiriyor: VectorDrawables ve BitmapDrawables, VectorPainter ve BitmapPainter arasında tıklayın. Bir resme VectorDrawable yüklemek için şunu kullanın:

Image(
    painter = painterResource(id = R.drawable.baseline_shopping_cart_24),
    contentDescription = stringResource(id = R.string.shopping_cart_content_desc)
)

Daha fazla özelleştirmeye ve ImageVector öğesine erişmeniz gerekiyorsa dosyayı şu şekilde yükleyebilirsiniz:

val imageVector = ImageVector.vectorResource(id = R.drawable.baseline_shopping_cart_24)

ziyaret edin.