En yaygın iki resim biçimi türü raster ve vektör resimlerdir.
Bir raster grafik biçimi, renk içeren küçük kareler olan piksellerden oluşur (kırmızı, yeşil, mavi ve alfa değerlerinden oluşur). Çok sayıda pikseli bir araya getirdiğinizde fotoğraf gibi çok ayrıntılı bir görüntü oluşturabilirsiniz. Rastgele grafiklerin çözünürlüğü sabittir (piksel sayısı sabittir). Bu, görüntünün boyutunu büyüttüğünüzde ayrıntı kaybı yaşanacağı ve piksellerin görünebileceği anlamına gelir. Raster grafik biçimlerine örnek olarak JPEG, PNG ve WEBP verilebilir.
Vektör resimler ise ekrandaki bir görsel öğenin ölçeklenebilir matematiksel gösterimleridir. Vektör, görüntünün ekranda nasıl çizileceğini açıklayan bir komutlar grubudur (ör. çizgi, nokta veya dolgu). Ekranda bir vektör ölçeklendirilirken matematiksel formül farklı komutlar arasındaki ilişkiyi koruduğu için kalite kaybı olmaz. ImageVector için iyi örnekler, matematiksel formüllerle tanımlanabildikleri için Material Symbols'dür.
ImageBitmap
Compose'da bir raster resim (genellikle Bitmap olarak adlandırılır) bir ImageBitmap örneğine yüklenebilir ve BitmapPainter, bit eşlemi ekrana çizmekten sorumludur.
Temel kullanım alanlarında, painterResource() işlevi ImageBitmap oluşturmak için kullanılabilir ve Painter nesnesi (bu durumda BitmapPainter) döndürür:
Image( painter = painterResource(id = R.drawable.dog), contentDescription = stringResource(id = R.string.dog_content_description) )
Daha fazla özelleştirmeye (ör. özel boyama uygulaması) ihtiyacınız varsa ve ImageBitmap öğesine erişmeniz gerekiyorsa aşağıdaki şekilde yükleyebilirsiniz:
val imageBitmap = ImageBitmap.imageResource(R.drawable.dog)
ImageVector
Bir VectorPainter, ekrana ImageVector çizmekten sorumludur.
ImageVector, Ölçeklenebilir Vektör Grafiği (SVG) komutlarının bir alt kümesini destekler. Tüm resimler vektör olarak gösterilemez (örneğin, kameranızla çektiğiniz fotoğraflar vektöre dönüştürülemez).
Mevcut bir vektör çizilebilir XML dosyasını (içe aktarma aracı kullanılarak Android Studio'ya aktarılır) içe aktararak veya sınıfı uygulayıp yol komutlarını manuel olarak vererek özel bir ImageVector oluşturabilirsiniz.
Temel kullanım alanlarında painterResource(), ImageBitmap sınıfında olduğu gibi ImageVectors için de çalışır ve sonuç olarak VectorPainter döndürür. painterResource(), VectorDrawables ve BitmapDrawables öğelerinin sırasıyla VectorPainter ve BitmapPainter içine yüklenmesini sağlar. Bir VectorDrawable öğesini resme 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 ihtiyacınız varsa ve ImageVector öğesine erişmeniz gerekiyorsa aşağıdaki şekilde yükleyebilirsiniz:
val imageVector = ImageVector.vectorResource(id = R.drawable.baseline_shopping_cart_24)
Sizin için önerilenler
- Not: Bağlantı metni, JavaScript kapalıyken gösterilir.
- Özel boya hizmeti {:#custom-painter}
- Compose'daki kaynaklar
- Resim yükleme {:#loading-images}