Saya ingin menambahkan gambar layar penuh ke tampilan jadi saya menulis kode ini
return (
<View style={styles.container}>
<Image source={require('image!egg')} style={styles.backgroundImage}/>
</View>
)
dan mendefinisikan gaya sebagai
var styles = StyleSheet.create({
container: {
flex: 1,
justifyContent: 'center',
alignItems: 'center',
backgroundColor: '#F5FCFF',
flexDirection: 'column',
},
backgroundImage:{
width:320,
height:480,
}
...
tetapi dengan cara ini bagaimana saya bisa menemukan ukuran layar iPhone yang sebenarnya?
Saya telah melihat API untuk mengakses Pixel Density tetapi tidak ada tentang ukuran layar ...
Ada ide?
javascript
react-native
talpaz
sumber
sumber
.png
atau tidak.jpg
? Apakah boleh menyimpan gambar wallpaper di dalam pohon direktori aplikasi? Atau lebih baik menggunakan sesuatu yang lain?.svg
atau apapun?Jawaban:
Anda dapat menggunakan
flex: 1
gaya pada<Image>
elemen untuk mengisi seluruh layar. Anda kemudian dapat menggunakan salah satu mode Ubah ukuran gambar agar gambar sepenuhnya mengisi elemen:Gaya:
Saya cukup yakin Anda dapat menyingkirkan
<View>
pembungkus gambar Anda dan ini akan berhasil.sumber
backgroundImage:{ justifyContent: 'center', alignItems: 'center', flex: 1, resizeMode: Image.resizeMode.contain, },
Terima kasihImage
komponen dalam posisi yang benar-benarView
memungkinkan gambar latar belakang muncul di belakang konten lain di layar.<Image src=...>
sekarang<Image source=...>
(Ini sudah ditinggalkan sekarang Anda dapat menggunakan ImageBackground )
Beginilah cara saya melakukannya. Kesepakatan utama adalah menyingkirkan ukuran tetap statis.
sumber
Image
komponen pertama Anda dikembalikan, wadah. Pada awalnya, saya tidak sengaja bersarang diImage
dalamView
wadah itu.Catatan: Solusi ini sudah tua. Silakan merujuk ke https://facebook.github.io/react-native/docs/images.html#background-image-via-nesting sebagai gantinya
Coba solusi ini. Secara resmi didukung. Saya baru saja mengujinya dan bekerja dengan sempurna.
Dan untuk menggunakannya sebagai gambar Background, lakukan saja hal berikut.
sumber
alignSelf
dan diwidth
sini?Saya mencoba beberapa jawaban ini tanpa hasil untuk android menggunakan versi react-native = 0.19.0.
Untuk beberapa alasan, metode resizeMode di dalam stylesheet saya tidak berfungsi dengan benar? Namun, saat sytlesheet sudah
dan, dalam tag gambar saya tentukan resizeMode:
Itu bekerja dengan sempurna! Seperti disebutkan di atas, Anda dapat menggunakan Image.resizeMode.cover atau mengandung juga.
Semoga ini membantu!
sumber
Pembaruan Maret 2018 Menggunakan Gambar tidak digunakan lagi menggunakan ImageBackground
sumber
Berdasarkan Braden Rockwell Napier 's jawaban , saya membuat ini
BackgroundImage
komponenBackgroundImage.js
someWhereInMyApp.js
sumber
PEMBARUAN ke ImageBackground
Karena penggunaan
<Image />
sebagai wadah sudah tidak digunakan lagi untuk sementara waktu, semua jawaban sebenarnya melewatkan sesuatu yang penting. Untuk penggunaan yang tepat pilih<ImageBackground />
denganstyle
danimageStyle
penyangga. Terapkan semua gaya yang relevan dengan GambarimageStyle
.Sebagai contoh:
https://github.com/facebook/react-native/blob/master/Libraries/Image/ImageBackground.js
sumber
Jika Anda ingin menggunakannya sebagai gambar latar belakang, Anda harus menggunakan
<ImageBackground>
komponen baru yang diperkenalkan pada akhir Juni 2017 di v0.46. Ini mendukung bersarang sementara tidak<Image>
lama lagi.Berikut ini ringkasan komit :
sumber
Oh Tuhan Akhirnya saya menemukan cara yang bagus untuk React-Native V 0.52-RC dan asli-basis:
Tag Konten Anda Harus seperti ini: // ======================================= =======================
Dan gaya penting Anda adalah: // ========================================== ====================
Berhasil teman baik ... bersenang-senang
sumber
Karena 0.14 metode ini tidak akan berfungsi, jadi saya membangun komponen statis yang akan membuat ini mudah bagi kalian. Anda bisa menempelkan ini di atau referensi sebagai komponen.
Ini harus digunakan kembali dan itu akan memungkinkan Anda untuk menambahkan gaya dan properti tambahan seolah-olah itu adalah
<Image />
komponen standarcukup tempel ini dan kemudian Anda dapat menggunakannya seperti gambar dan itu harus sesuai dengan seluruh ukuran tampilan yang ada di dalamnya (jadi jika itu adalah tampilan teratas itu akan mengisi layar Anda.
Klik di sini untuk Gambar Pratinjau
sumber
Terakhir per Oct'17 (RN> = .46)
http://facebook.github.io/react-native/releases/0.49/docs/images.html#background-image-via-nesting
sumber
sumber
Untuk menangani kasus penggunaan ini, Anda dapat menggunakan
<ImageBackground>
komponen, yang memiliki alat peraga yang sama dengan<Image>
, dan menambahkan anak-anak apa pun ke dalamnya yang ingin Anda lapisan di atasnya.Contoh:
Untuk lebih lanjut: ImageBackground | Bereaksi Asli
sumber
Anda perlu memastikan bahwa Gambar Anda telah resizeMode = {Image.resizeMode.contain} atau {Image.resizeMode.stretch} dan atur lebar gaya gambar ke nol
sumber
Lebar dan tinggi dengan nilai nol tidak berfungsi untuk saya, maka saya berpikir untuk menggunakan posisi atas, bawah, kiri, dan kanan dan berhasil. Contoh:
Dan BEJ:
sumber
(RN> = .46)
atau Anda bisa menggunakan ImageBackground
sumber
Cara termudah untuk menerapkan latar belakang:
sumber
Bagi saya ini berfungsi dengan baik, saya menggunakan ImageBackground untuk mengatur gambar latar belakang:
sumber
Jika Anda belum menyelesaikannya, React Native v.0.42.0 memiliki resizeMode
sumber
Anda dapat mencobanya di: https://sketch.expo.io/B1EAShDie (dari: github.com/Dorian/sketch-reactive-native-apps )
Documents: https://facebook.github.io/react-native/docs/images.html#background-image-via-nesting
sumber
Anda juga dapat menggunakan gambar Anda sebagai wadah:
sumber
Saya pernah mendengar tentang harus menggunakan BackgroundImage karena di masa depan Anda seharusnya tidak dapat membuat tag Gambar. Tapi saya tidak bisa mendapatkan BackgroudImage untuk menampilkan latar belakang saya dengan benar. Apa yang saya lakukan adalah menumpuk gambar saya di dalam tag tampilan dan gaya tampilan luar serta gambar. Tombol-tombol mengatur lebar ke nol, dan mengatur ukurannya ke 'peregangan'. Di bawah ini adalah kode saya:
sumber
Gunakan
<ImageBackground>
seperti yang sudah dikatakan oleh antoine129 . Menggunakan<Image>
dengan anak-anak sudah ditinggalkan sekarang.sumber
Solusi mudah lain:
sumber
Saya memecahkan masalah gambar latar belakang saya menggunakan kode ini.
sumber
ImageBackground mungkin memiliki batas
Jika Anda ingin menambahkan Gambar Latar Belakang dalam Bereaksi Asli dan juga ingin menambahkan elemen lain pada Gambar Latar Belakang itu, ikuti langkah di bawah ini:
Ini adalah kode yang saya gunakan:
Nikmati Pengodean ....
Keluaran:
sumber