एक गतिविधि में पूर्ण स्क्रीन पृष्ठभूमि छवि


145

मुझे कई एप्लिकेशन दिखाई देते हैं जो पृष्ठभूमि के रूप में एक पूर्ण-स्क्रीन छवि का उपयोग करते हैं। यह एक उदाहरण है:

पूर्ण स्क्रीन पृष्ठभूमि छवि

मैं इसे एक परियोजना में उपयोग करना चाहता हूं, सबसे अच्छा तरीका जो मैंने अब तक पाया है वह यह है कि एक बड़े आकार के साथ एक छवि का उपयोग करें, इसे मार्जिन में समायोजित करने के लिए ImageViewउपयोग करें और उपयोग android: adjustViewBounds="true"करें

समस्या यह है कि यदि कोई स्क्रीन बहुत अधिक रिज़ॉल्यूशन वाली है, तो छवि कम हो जाती है।

एक अन्य विकल्प मैं के बारे में सोचा एक में छवि का उपयोग करने के लिए है FrameLayoutके साथ, match_parentमें widthऔर heightइस छवि में फैला है ... पृष्ठभूमि के रूप में है, लेकिन मुझे लगता है कि परिणाम बहुत अच्छा नहीं है।

आपको इसे कैसे करना होगा?


3
विश्वास मत करो कि यह पृष्ठभूमि पर काम करता है, लेकिन इसे छवियों पर काम करना चाहिए। android:scaleType="centerCrop"
ईजीएचडीके

जवाबों:


223

आप इसे कर सकते हैं कई तरीके हैं।

विकल्प 1:

अलग-अलग डीपीआई के लिए अलग-अलग सही चित्र बनाएं और उन्हें संबंधित ड्रॉबल फ़ोल्डर में रखें। फिर सेट करें

android:background="@drawable/your_image"

विकल्प 2:

एक बड़ी छवि जोड़ें। फ्रेमलैट का प्रयोग करें। पहले बच्चे के रूप में एक जोड़ें ImageView। अपने ImageView में निम्नलिखित सेट करें।

android:src="@drawable/your_image"
android:scaleType = "centerCrop"

2
आप 'your_image' को कहाँ संग्रहीत करते हैं?
अथर्व जौहरी

5
Res-> drawable फ़ोल्डर्स में। कई हो सकते हैं - एक अलग रिज़ॉल्यूशन के लिए प्रत्येक स्टैंड (उदा। कम रिज़ॉल्यूशन / उच्च रिज़ॉल्यूशन)। यदि आपके पास प्रत्येक रिज़ॉल्यूशन के लिए विशिष्ट चित्र नहीं हैं, तो कोई भी काम करेगा।
क्रोडमानिक्स

5
जवाब अच्छा है। लेकिन मुझे आश्चर्य है कि अगर किसी को प्रत्येक डीपीआई समूह के लिए विशिष्ट फोन का आकार मिला, जो छवियों को तैयार करते समय काफी उपयोगी होगा। संपादित: पाया - stackoverflow.com/questions/10574363/…
fox

7
अंतिम विकल्प -> मेमोरी से बाहर: D
ternes3

1
OOM त्रुटि यहाँ हम आते हैं ... अगर इसकी एक बड़ी छवि आपकी स्क्रीन आकार के आधार पर ऊपर या नीचे स्केल करने की आवश्यकता है! इस स्थिति में आपको अतुल्यकालिक कार्य के माध्यम से बिटमैप को लोड करने की आवश्यकता होगी।
जॉनी 2 प्लेट्स

25

एक अन्य विकल्प ड्रॉबल्स में एक छवि (जरूरी नहीं कि बड़ी हो) जोड़ने के लिए है (चलो इसे backgroung.jpg नाम दें), "src" विशेषता के बिना अपने xml की जड़ में एक ImageView iv_background बनाएं। फिर इसी गतिविधि के चालू तरीके में:

    /* create a full screen window */
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
            WindowManager.LayoutParams.FLAG_FULLSCREEN);
    setContentView(R.layout.your_activity);

    /* adapt the image to the size of the display */
    Display display = getWindowManager().getDefaultDisplay();
    Point size = new Point();
    display.getSize(size);
    Bitmap bmp = Bitmap.createScaledBitmap(BitmapFactory.decodeResource(
      getResources(),R.drawable.background),size.x,size.y,true);

    /* fill the background ImageView with the resized image */
    ImageView iv_background = (ImageView) findViewById(R.id.iv_background);
    iv_background.setImageBitmap(bmp);

कोई फसल नहीं, कई अलग-अलग आकार के चित्र नहीं। आशा करता हूँ की ये काम करेगा!


3
यह एक उपयोगी उपाय है, लेकिन मुख्य थ्रेड से बिटमैप प्रोसेसिंग करना याद रखें: developer.android.com/training/displaying-bitmaps/…
काइल इवे

19

आपको विभिन्न आकार की छवियों को फॉलोइंग फ़ोल्डर में रखना चाहिए

अधिक जानकारी के लिए इस लिंक पर जाएँ

  • ldpi

  • mdpi

  • hdpi

  • xhdpi

  • xxhdpi

और Follwoing उदाहरण के रूप में ImageView का उपयोग करने के बजाय RelativeLayout या LinearLayout पृष्ठभूमि का उपयोग करें

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
 xmlns:android="http://schemas.android.com/apk/res/android"
 android:layout_width="fill_parent"
 android:layout_height="fill_parent"
 android:orientation="vertical"
 android:background="@drawable/your_image">

</RelativeLayout>

मुझे एक त्रुटि मिल रही है किUnexpected namespace prefix "xmlns" found for tag RelativeLayout
CodyBugstein

यह मेरी फ्रैगमेंट को इतना कमजोर बना देता है। पता नहीं क्यों कर सकते हैं।
सिरमियन

picasso ( square.github.io/picasso ) के साथ कैश या लोड इमेज का उपयोग करें, आशा है कि आपकी समस्या का समाधान होगा
मुनीश कपूर

7

व्हाट अबाउट

android:background="@drawable/your_image"

आपकी गतिविधि के मुख्य लेआउट पर?

इस तरह से आप अलग-अलग स्क्रीन के घनत्व के लिए अलग-अलग चित्र भी उपयुक्त res/drawable-**dpiफ़ोल्डरों में रख सकते हैं ।


7

इसे पोस्ट किए हुए कुछ समय हुआ है, लेकिन इससे मुझे मदद मिली।

आप नेस्टेड लेआउट का उपयोग कर सकते हैं। किसी RelativeLayout से प्रारंभ करें, और उसमें अपना ImageView रखें।

स्क्रीन को भरने के लिए ऊँचाई और चौड़ाई से मिलान करें।

सेट पैमाना = "centreCrop" ताकि छवि स्क्रीन पर फिट हो और खिंचाव न हो।

फिर आप किसी भी अन्य लेआउट में डाल सकते हैं जैसा कि आप सामान्य रूप से करेंगे, जैसा कि नीचे दिए गए LinearLayout में है।

आप छवि की पारदर्शिता सेट करने के लिए एंड्रॉइड: अल्फा का उपयोग कर सकते हैं।

<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

  <ImageView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:scaleType="centerCrop"
    android:src="@drawable/image"
    android:alpha="0.6"/>

  <LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity">

      <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello"/>

      <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="There"/>

   </LinearLayout>
</RelativeLayout>

7

यदि आप अपनी छवि को पारदर्शी एक्शन बार दिखाना चाहते हैं, तो अपने थीम की स्टाइल परिभाषा में निम्नलिखित को शामिल करें:

<item name="android:windowActionBarOverlay">true</item>

का आनंद लें!


7

इसे इस्तेमाल करो

android:background="@drawable/your_image"

अपनी गतिविधि में बहुत पहले रैखिक या रिश्तेदार लेआउट।


1

NoToast के उत्तर की तर्ज पर, आपको अपने Res / drawable-ldpi, mdpi, hdpi, x-hdpi (xtra बड़ी स्क्रीन के लिए) में "your_image" के कई संस्करण होने चाहिए , match_parent हटाएं और android रखें : AdjustViewBounds = " सच"


1

android:background="@drawable/your_image"अपने Relativelayout / Linearlayout कार्य के अंदर जोड़ें ।


0

यदि आपके पास अपनी पृष्ठभूमि छवि के रूप में bg.png है तो बस:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/bg"
    tools:context=".MainActivity" >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:text="@string/hello_world"/>
</RelativeLayout>

-1

काम कर रहे। आपको इसे आज़माना चाहिए:

android:src="@drawable/img"

-1

three step for put background

1) आपको अपनी पसंद की तस्वीर चुननी चाहिए। उदाहरण के लिए: यहां छवि विवरण दर्ज करें

2) फिर आप इस तस्वीर को ड्रॉबल में कॉपी कर लें। चेतावनी: आपको नाम चित्र के लिए छोटे प्रकार का चयन करना चाहिए।

यहाँ छवि विवरण दर्ज करें

3) आप पेज xml पर जाएँ और लिखें:

android: background = "id picture" उदाहरण के लिए मेरी तस्वीर आईडी @ drawable / download है।

यहाँ छवि विवरण दर्ज करें

समाप्त।


-2

सबसे आसान तरीका:

चरण 1: AndroidManifest.xml फ़ाइल खोलें

आप यहाँ फ़ाइल देख सकते हैं!

चरण 2: पता लगाएँ android:theme="@style/AppTheme" >

चरण 3: में बदलें android:theme="@style/Theme.AppCompat.NoActionBar" >

स्टेप 4: इसके बाद इमेज व्यू और इमेज एड करें

चरण 4: यह बात है!

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.