2011-08-31 13 views
14

यहाँ मैं क्या करना चाहते हैएंड्रॉइड: क्या एक्सएमएल ड्रॉबल को स्केल करना संभव है? मैं इस पैमाने एक्सएमएल है:

<?xml version="1.0" encoding="utf-8"?> 
<scale xmlns:android="http://schemas.android.com/apk/res/android" 
    android:drawable="@drawable/mydrawable" 
    android:scaleGravity="bottom" 
    android:scaleHeight="50%" /> 

और मैं इस drawable एक्सएमएल के साथ उपयोग करना चाहते हैं:

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item> 
     <shape xmlns:android="http://schemas.android.com/apk/res/android" 
      android:shape="rectangle"> 
      <gradient android:startColor="#FFFFFFFF" 
       android:endColor="#FFFF0000" 
       android:angle="90" /> 
     </shape> 
    </item> 
</layer-list> 

तो मैं एक पृष्ठभूमि के रूप में सेट पैमाने एक्सएमएल एक लीनियरआउट के लिए, लेकिन मुझे कुछ भी दिखाई नहीं देता है। क्या मुझे कुछ याद आ रहा है या ऐसा करना संभव नहीं है (एक्सएमएल के साथ)?

+1

बीटीडब्ल्यू शीर्ष-स्तर तत्व इसे चारों ओर घूमने के लिए परत सूची की आवश्यकता के बिना 'आकार' हो सकता है। साथ ही, संसाधन निर्देशिका में कौन सी फाइलें हैं? – Greyson

+0

क्षमा करें, मुझे अभी एहसास हुआ कि मैं इस _extremely_ देर से आ रहा हूं। – Greyson

+0

@michelemarcon: क्या आप कुछ भी खत्म कर चुके थे? – Behnam

उत्तर

3

यह स्केलड्राउबल ऑब्जेक्ट के साथ एक समस्या है जिसे एक्सएमएल में हल नहीं किया जा सकता है।

// Get the scale drawable from your resources 
ScaleDrawable scaleDraw = (ScaleDrawable)getResources().getDrawable(R.drawable.background_scale); 
// set the Level to 1 (or anything higher than 0) 
scaleDraw.setLevel(1); 

// Now assign the drawable where you need it 
layout.setBackgroundDrawable(scaleDraw); 

मैं इस समाधान का उपयोग कर अपने कोड का परीक्षण किया और यह ठीक काम किया:

लेकिन यह आसान है, बस निम्न कार्य करें।