En yaygın iki resim biçimi raster ve vektör resimlerdir.
Rastır grafik biçimi, pikseller içerir: Renk (kırmızı, yeşil, mavi ve alfa değerlerinden oluşur) içeren küçük kareler. Çok sayıda piksel bir araya getirildiğinde fotoğraf gibi çok ayrıntılı bir resim oluşturulabilir. Rastır grafiklerin çözünürlüğü sabittir (sabit piksel sayısı). Bu, görüntünün boyutunu artırdığınızda ayrıntıların kaybolacağı ve pikselleşme olabileceği anlamına gelir. Rastır grafik biçimlerine örnek olarak JPEG, PNG ve WEBP verilebilir.
Öte yandan vektör resimler, ekrandaki görsel bir öğenin ölçeklenebilir matematiksel gösterimlerinden oluşur. Vektör, resmin ekranda nasıl çizileceğini açıklayan bir komut kümesidir (ör. çizgi, nokta veya dolgu). Bir vektörü ekranda ölçeklendirirken matematiksel formül farklı komutlar arasındaki ilişkiyi koruduğundan kalite kaybı yaşanmaz. Materyal Symbols, tümü matematiksel formüllerle tanımlanabileceğinden, ImageVector'a iyi bir örnektir.
ImageBitmap
Compose'da bir kafes görüntü (genellikle Bitmap
olarak adlandırılır) ImageBitmap
örneğine yüklenebilir. BitmapPainter
ise bit eşlemi ekrana çizmekten sorumludur.
Basit kullanım alanları için painterResource()
kullanılabilir. Bu işlev, ImageBitmap
oluşturma ve Painter
nesnesi (bu durumda BitmapPainter
) döndürme işlemlerini gerçekleştirir:
Image( painter = painterResource(id = R.drawable.dog), contentDescription = stringResource(id = R.string.dog_content_description) )
Daha fazla özelleştirmeye (ör. özel bir boya uygulaması) ve ImageBitmap
'ye erişmeye ihtiyacınız varsa ImageBitmap
'yi aşağıdaki şekilde yükleyebilirsiniz:
val imageBitmap = ImageBitmap.imageResource(R.drawable.dog)
ImageVector
Ekrana ImageVector
çizmekten VectorPainter
sorumludur.
ImageVector
, SVG komutlarının bir alt kümesini destekler. Tüm resimler vektör olarak temsil edilemez (ö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 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()
, VectorDrawables
ve BitmapDrawables
öğelerinin sırasıyla VectorPainter
ve BitmapPainter
öğelerine yüklenmesini yönetir. Bir resme VectorDrawable
yüklemek için:
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
'e doğrudan 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 boyacı {:#custom-painter}
- Compose'daki kaynaklar
- Resimler yükleniyor {:#loading-images}