2012-06-01 21 views
28

मेरे पास एक सफेद पृष्ठभूमि और 1 डीपी पैडिंग के साथ एक छविदृश्य सेट है, यह एक सीमा-समान प्रभाव बनाता है, जो वांछित परिणाम है।ImageView ScaleType पैडिंग को अनदेखा करता है

अब यदि मैं स्केल टाइप को सेंटर में सेट करता हूं तो यह ऊपर और नीचे पैडिंग को अनदेखा करता है।
तो मेरे पास अभी भी बाएं और दाएं तरफ मेरी सीमा है, लेकिन ऊपर और नीचे नहीं।

कोई भी ऐसा होने से रोकने के विचार के साथ? या छवियों के चारों ओर एक सीमा बनाने के लिए एक और त्वरित तरीका। मैं अपने कस्टम gridview

<ImageView 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:layout_weight="1" 
      android:background="#FFFFFF" 
      android:contentDescription="@string/test" 
      android:padding="1dp" 
      android:src="@drawable/some_photo" 
      android:scaleType="centerCrop" /> 
+0

एंड्रॉयड: scaleType = "fitxy" जाँच – Khan

+2

नहीं है कि छवि को फैलाने जाएगा, मैं को रोकने के लिए कोशिश कर रहा हूँ कि –

+0

भी सेट एंड्रॉयड: adjustViewBounds = "true" और एंड्रॉयड उपयोग करने के बजाय से अभी भी यह खिंचाव छवि: src use android: पृष्ठभूमि – Khan

उत्तर

-7

मैं सिर्फ एक ही समस्या का सामना करना पड़ा, मेरे वैकल्पिक हल के लिए जोड़ने हो जाएगा एंड्रॉइड: layout_marginRight = "5dip"

<ImageView 
    android:layout_width="40dp" 
    android:layout_height="30dp" 
    android:background="#ffffffff" 
    android:src="@drawable/liveview_logo" 
    android:layout_marginRight="5dip"/> 
+0

धन्यवाद, यह काम करता है, मैंने सोचा कि मैं एक ग्रिड व्यू में अतिरिक्त लाइनरलेआउट का उपयोग नहीं कर सकता, बाहर निकलता हूं हाँ मैं। सभी मामलों में –

+3

संभव नहीं होगा। Manolo Garcia का सही जवाब है – Makibo

+1

मैनोलो गार्सिया का उत्तर सही है, यह मार्जिन सही नहीं समझता है .. –

2

के लिए इसका इस्तेमाल करते हैं आप android:background="@drawable/edit_border"

और अपने edit_border की स्थापना करके सीमा दे सकते हैं:

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" > 

    <stroke 
     android:width="2dp" 
     android:color="#EBDDE2" /> 

    <padding 
     android:bottom="2dp" 
     android:left="2dp" 
     android:right="2dp" 
     android:top="4dp" /> 

    <gradient 
     android:centerColor="@color/white" 
     android:endColor="@color/white" 
     android:startColor="@color/white" /> 

    <corners android:radius="8dp" /> 

</shape> 
+0

सीमा प्राप्त हुई लेकिन मेरे परिदृश्य में चित्र चित्र चित्र दृश्य अभी भी शीर्ष और निचली सीमा नहीं दिखाते हैं –

154
<ImageView 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:layout_weight="1" 
    android:contentDescription="@string/test" 
    android:padding="1dp" 
    android:src="@drawable/some_photo" 
    android:cropToPadding="true" 
    android:scaleType="centerCrop" /> 

आप केवल जोड़ने के लिए android:cropToPadding

एंड्रॉयड की जरूरत है: cropToPadding = "true"

और फिर imageView गद्दी आपके द्वारा चुने गए सम्मान करने के लिए जा रहा है।

+3

वैकल्पिक उत्तर, मनोलो के लिए आपका स्वागत है और धन्यवाद। इसका परीक्षण नहीं कर सकता लेकिन यह मेरे लिए पैसे पर सही लगता है। –

+2

यह प्रश्न – JesperB

+2

का सही उत्तर है यह सही है .. –

0

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

final ImageView imageView = new ImageView(context); 
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(200,200); 
lp.setMargins(0, 0, 10, 0); 
imageView.setLayoutParams(lp); 
imageView.setAdjustViewBounds(true); 
imageView.setCropToPadding(true); 
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP); 
imageView.setBackgroundResource(R.drawable.img_blue_border); 
imageView.setPadding(5, 5, 5, 5); 
संबंधित मुद्दे