android - एक छवि दृश्य के आसपास अनचाहे पैडिंग




user-interface imageview (4)

मुझे अपनी सभी गतिविधियों / विचारों में हेडर ग्राफिक शामिल करने की आवश्यकता है। शीर्षलेख वाली फ़ाइल को header.xml कहा जाता है:

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="fill_parent" 
  android:layout_height="wrap_content"
  android:background="#0000FF" 
  android:padding="0dip">

  <ImageView xmlns:android="http://schemas.android.com/apk/res/android"
    android:src="@drawable/header"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_margin="0dip"
    android:layout_marginTop="0dip"
    android:layout_marginBottom="0dip"
    android:padding="0dip"
    android:paddingTop="0dip"
    android:paddingBottom="0dip"
    android:layout_gravity="fill"
    android:background="#00FF00"
    />
</FrameLayout>

android:background="#00FF00" नोट करें android:background="#00FF00" (हरा), यह केवल विज़ुअलाइजेशन उद्देश्यों है।

मैं उन्हें इस तरह के अपने विचारों में शामिल करता हूं:

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

  <include layout="@layout/header" />
  (...)

इसलिए, जब मैं वास्तव में इसे आज़माता हूं, तो परिणाम बाएं छवि की तरह दिखता है, इसके बजाय यह किस तरह दिखना चाहिए (दाएं):

(1) यह - नारंगी - भाग छवि में छवि / छवि दृश्य है
(2) अनदेखी हरी सीमा। नोट: आम तौर पर, हरा क्षेत्र पारदर्शी होगा - यह केवल हरा है क्योंकि मैंने background सेट की background

शीर्ष पर छवि के चारों ओर हरी सीमा नोट करें; यह ImageView का हिस्सा है और मैं यह नहीं समझ सकता कि यह क्यों है या मैं इससे कैसे छुटकारा पा सकता हूं। यह सभी पैडिंग और मार्जिन 0 पर सेट करता है (लेकिन परिणाम वही होता है जब मैं उन्हें छोड़ देता हूं)। छवि एक 480x64px jpeg * है और मैंने इसे res / drawable में रखा है (यद्यपि drawable-Xdpi में से एक में नहीं)।

(* जेपीईजी, क्योंकि ऐसा लगता है कि मैंने पुरानी पीएनजी गामा समस्या पर ठोकर खाई - पहले मैंने हरे रंग की सीमा को तस्वीर के समान ही नारंगी बनाकर समस्या के आसपास काम किया, और रंग मेल नहीं खाते।)

मैंने इसे अपनी एचटीसी इच्छा / 2.2 / 2.33.163.1 और एमुलेटर पर बनाने की कोशिश की। मैंने # एंड्रॉइड-देव में किसी को भी समस्या का वर्णन किया; वह समस्या का पुनरुत्पादन कर सकती थी लेकिन उसके पास कोई स्पष्टीकरण नहीं था। लक्ष्य लक्ष्य 1.6 है।

@tehgoose अपडेट करें: यह कोड सटीक उसी शीर्ष + नीचे गद्देदार परिणाम उत्पन्न करता है।

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

  <!-- <include layout="@layout/header" />  -->

  <ImageView
    android:src="@drawable/header"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:background="#00FF00"
    android:layout_weight="0"
    />

  <LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:padding="8dip"
    android:layout_weight="1">

    (... rest of the elements)

  </LinearLayout>
</LinearLayout>

आखिरकार!

<ImageView
  (...)
  android:adjustViewBounds="true" />

एडजस्टव्यूबाउंड्स विशेषता ने चाल की है:

इसे सही पर सेट करें यदि आप ImageView को अपने ड्रॉइंग के पक्ष अनुपात को संरक्षित करने के लिए अपनी सीमाओं को समायोजित करना चाहते हैं।

मैं यहाँ पर ठोकर खाई। आपकी सहायताके लिए धन्यवाद!


इसे छवि पहलू अनुपात के साथ करना है। डिफ़ॉल्ट रूप से, सिस्टम छवि स्रोत का मूल पहलू अनुपात रखता है। जो ज्यादातर मामलों में लेआउट में निर्दिष्ट लेआउट या आयाम से बिल्कुल मेल नहीं खाता है। इसलिए,

  1. या तो निर्दिष्ट लेआउट फिट करने के लिए छवि के आकार को बदलें या
  2. android:scaleType उपयोग करें android:scaleType छवि फिट करने के लिए android:scaleType । उदाहरण के लिए, आप android:scaleType="fitXY" निर्दिष्ट कर सकते हैं android:scaleType="fitXY"

हो सकता है कि आप adjust image to make green border specific height to imageView say 50dp or 40dp दे specific height to imageView say 50dp or 40dp और adjust image to make green border गायब adjust image to make green border

उदाहरण: android:layout_height="40dp"


android:layout_height="wrap_content"

आपको इसे "fill_parent" में बदलना होगा

आपको अपनी छवि को स्केल करने की भी आवश्यकता हो सकती है, इसलिए यह उस फ़्रेमेलआउट को भरने का सही अनुपात होगा।

मुझे समझ में नहीं आता कि आपको फ्रेम लेआउट की आवश्यकता क्यों है। इसके बिना, आपकी छवि स्क्रीन को वैसे भी भर देगी।

संपादित करें: हाँ, क्षमा करें, xml छविदृश्य के लिए ऊंचाई है।





imageview