2016-01-20 9 views
5

मैं अपने ऐप में पृष्ठभूमि के रूप में एक छवि प्रदर्शित करना चाहता हूं। अब मैंने इस कथन का उपयोग किया: android:background="@drawable/background"<LineraLayout> में।एंड्रॉइड प्रोग्रामिंग फसल पृष्ठभूमि छवि

<LinearLayout 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:orientation="vertical" 
    tools:context="overbit.user.MainActivity" 
    android:background="@drawable/background"> 
</LinearLayout> 

अब मैं इस आउटपुट प्राप्त:

image

लेकिन मैं इसे इस तरह हैं:

as

हो सकता है कि आप में से किसी की मदद कर सकते हैं यहाँ .xml कोड है मुझे। धन्यवाद।

उत्तर

7

BitmapDrawable है, जो इसे करने की अनुमति देता है।

<bitmap 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:src="@drawable/background" 
    android:gravity="center" /> 

और फिर अपने लेआउट में एक पृष्ठभूमि संसाधन के रूप में निर्दिष्ट करें:: सबसे पहले आप इस प्रकार एक drawable संसाधन बनाने की जरूरत है (यह परियोजना संसाधनों res/drawable/mybg.xml में एक फ़ाइल रहने दो)

<LinearLayout 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:orientation="vertical" 
    tools:context="overbit.user.MainActivity" 
    android:background="@drawable/mybg"> 
</LinearLayout> 
3

आप फ़ोटोशॉप में छवि के आकार को स्वयं या वांछित परिणाम प्राप्त करने के लिए कुछ बदलने की आवश्यकता है (फिर भी यह एंड्रॉइड स्मार्टफोन के विभिन्न स्क्रीन आकारों के कारण बहुत मुश्किल हो सकता है)। का संभावित हल Relativelayout करने के लिए अपने माता-पिता लेआउट बदलने और फिर एक एक imageView उपयोग करने के लिए इस तरह अपनी तस्वीर दिखाने के लिए किया जा सकता है:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    xmlns:ads="http://schemas.android.com/apk/res-auto" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 
    <ImageView 
     android:layout_width="match_parent" //make sure its match parent 
     android:layout_height="match_parent"// and this one also 
     android:src="@drawable/yourBackgroundImage" 
     android:scaleType="..."/> 
    <LinearLayout>put your childviews here</LinearLayout> 

वहाँ एंड्रॉयड के लिए 4-5 विकल्प उपलब्ध हैं: scaleType .. उनके साथ प्रयोग करें, जब तक आप अपना वांछित नतीजा न लें। यह भी ध्यान रखें कि आप एंड्रॉयड उपयोग करने की आवश्यकता: src बल्कि से एंड्रॉयड: पृष्ठभूमि imageView

+0

हाय, आपके उत्तर के लिए धन्यवाद! क्या यह सबसे अच्छा तरीका है? – MyNewName

+0

@MyNewName मुझे यह एक सुविधाजनक और आसान तरीका मिल गया है। Imageview में स्केल टाइप टाइप आपको उपयोगी लचीलापन प्रदान करता है। एक अतिरिक्त छवि दृश्य जोड़ना वास्तव में आपके लेआउट को अधिक नहीं बढ़ाता है (जब तक कि यह पहले से ही काफी अव्यवस्थित नहीं है)। – drWisdom

4

की विशेषता आप पूरा कर सकते हैं आप BitmapRegionDecoder का उपयोग करके ऐसा करने के लिए कोशिश कर रहे हैं क्या।

डॉक्स से:

BitmapRegionDecoder एक छवि से एक आयत क्षेत्र को डिकोड करने के लिए इस्तेमाल किया जा सकता है। BitmapRegionDecoder विशेष रूप से उपयोगी होता है जब मूल छवि बड़ी होती है और आपको केवल छवि के कुछ हिस्सों की आवश्यकता होती है।

यह आप काफी आसानी से एक विशेष बिटमैप का एक रेक्ट क्षेत्र को डिकोड करने की अनुमति देता है, केवल एक चीज आप करने की ज़रूरत है अपने रेक्ट क्षेत्र की गणना बिटमैप के सापेक्ष डिकोड करने के लिए है।

0

एंड्रॉइड में छवि दृश्य की स्थिति छवि के ऊपरी बाईं ओर निर्धारित होती है। मुझे लगता है कि एक्स दिशा प्रारंभ बिंदु से चौड़ाई का 1/3 है। अब हम पिवट सेट कर सकते हैं। मूल रूप से पिवट बिंदु का स्थान, एक ऐसा स्थान है जहां दृश्य घुमाएगा और स्केल करेगा।

int displacementX = ImageView.getWidth()/3; 
int displacementY = 10; 
imgview.setPivotX((float)displacementX); 
imgview.setPivotY((float)displacementY); 

अब हमने पिवट सेट किया है, हम छवि को फिट करने के लिए स्केल प्रकार का उपयोग कर सकते हैं।

imgview.setScaleType(ImageView.ScaleType.CENTER_CROP); 
संबंधित मुद्दे