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 pikselleri içerir (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 görüntü oluşturulabilir. 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 bozulabileceğ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 kümesidir (ö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ımlanabilen 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 bir boyama aracı 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
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 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 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: JavaScript kapalıyken bağlantı metni gösterilir.
- Özel boya hizmeti {:#custom-painter}
- Compose'daki kaynaklar
- Resim yükleme {:#loading-images}