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 piksel bir araya getirildiğinde fotoğraf gibi çok ayrıntılı bir resim 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. Matematiksel formül farklı komutlar arasındaki ilişkiyi koruduğundan, ekranda ölçeklendirilen bir vektör kalite kaybına uğramaz. 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'dir veya Kotlin kodunda tanımlanır)
Şekil 2: Vektör örneği (dosya uzantıları .xml veya Kotlin kodunda tanımlanmıştır)

ImageBitmap

Oluşturma'da, bir raster resim (genellikle Bitmap olarak adlandırılır) bir ImageBitmap örneğine yüklenebilir. Bit eşlemenin ekrana çizilmesinden ise BitmapPainter sorumludur.

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 uygulanması) 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 çizilebilir XML dosyasını içe aktararak (içe aktarma aracı kullanılarak Android Studio'ya aktarılır) veya sınıfı uygulayıp yol komutlarını manuel olarak vererek özel bir ImageVector oluşturabilirsiniz.

Basit kullanım alanları için painterResource(), ImageBitmap sınıfında olduğu gibi ImageVectors için de çalışır ve sonuç olarak bir VectorPainter döndürür. 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)