2012-04-15 17 views
15

एंड्रॉइड में शेल्फ की तरह शेल्फ कैसे बनाएं जो किसी भी पंक्ति में कई पुस्तकें दिखाती है? इसके अलावा, इसमें चंद्रमा + रीडर ऐप जैसे क्षैतिज और लंबवत विशेषताएं होनी चाहिए।एंड्रॉइड में शेल्फ की तरह शेल्फ कैसे बनाएं?

मैं एक शेल्फ दृश्य लिख सकता हूं जो क्षैतिज रूप से चलता है लेकिन यह पूरी तरह से काम नहीं करता है। मैंने छवियों, टेक्स्ट और बटन को शामिल करने वाले आइटम देखने के लिए एक XML फ़ाइल का उपयोग किया। मैंने एक वर्ग लिखा है जो AdapterView को एक अनुकूलित ListView बनाने के लिए बढ़ाता है जिसे मैंने "shelf view" कहा था। दुर्भाग्य से, मेरा प्रोग्राम एक पंक्ति दिखाता है और मैं इसे कई पंक्तियों के लिए उपयोग नहीं कर सकता।

enter image description here

+1

आप हमें दिखा सकते हैं कि तुम क्या अब तक प्राप्त किया था? –

+0

अभिशाप की हाँ, मैं छवियों, पाठ और बटम को शामिल करने वाले आइटम देखने के लिए एक XML फ़ाइल में उपयोग करता था। मैंने लिखा है कि एक वर्ग एक कस्टमाइज़ व्यूव्यू व्यू बनाने के लिए एडाप्टर व्यू को बढ़ाता है जिसे मैंने इसे कहा: "शेल्फ व्यू"। दुर्भाग्य से, मेरा प्रोग्राम एक पंक्ति दिखाता है और मैं इसे कई पंक्तियों के लिए उपयोग नहीं कर सकता। क्या आपको यह मिला? – azad

उत्तर

20

अंतिम अद्यतन: अब, मैं शेल्फ पर-व्यू पिछले समाधान की तुलना में बेहतर बनाने के लिए एक नया तरीका पता लगा सकते हैं।

  • HorizontalListView क्लास कि AdapterView लागू होता है: मैं CodeProject

    में वर्णित मार्ग से, इस आवेदन में मैं दो वर्गों का इस्तेमाल किया। यह GitHub

  • Quaere लाइब्रेरी से लगभग Linq2Object के रूप में उपयोग किया जाता है। आप here डाउनलोड कर सकते हैं।


अप्रैल 22 '12:

वहाँ शेल्फ दृश्य लागू करने के लिए यह दो विशेषताएं (क्षैतिज & लंबवत स्क्रॉल) है कि कुछ तरीके हैं। मैं एक प्रोग्राम लिखने की कोशिश करता हूं जो गतिशील रूप से चला सकता है। इस नमूना ऐप में एक एक्सएमएल फ़ाइल है और शोशेल्फ़ व्यू जावा कक्षा है।

तो तुम मेरी एप्लिकेशन देख सकते हैं:

मुख्य एक्सएमएल फ़ाइल: पहले,

<?xml version="1.0" encoding="utf-8"?> 
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:id="@+id/sclView"> 
    <TableLayout 
      android:id="@+id/tblLayout" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:padding="0dp"> 
    </TableLayout> 
</ScrollView> 

showShelfView कक्षा main.XML में निम्न कोड जोड़ें: इनर TableLayout जोड़ने कई HorizontalScroll के बराबर होती है पंक्तियों की संख्या के साथ। किसी भी tableRow छवि भी आंतरिक।

भूल पंक्ति की पृष्ठभूमि के लिए एक शेल्फ छवि सेट न करें:

enter image description here

public class showShelfView extends Activity { 

    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 


     int numRow = 4; 
     int numCol = 8; 

     TableLayout tblLayout = (TableLayout) findViewById(R.id.tblLayout); 

     for(int i = 0; i < numRow; i++) { 
      HorizontalScrollView HSV = new HorizontalScrollView(this); 
      HSV.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT)); 

      TableRow tblRow = new TableRow(this); 
      tblRow.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT)); 
      tblRow.setBackgroundResource(R.drawable.bookshelf); 

      for(int j = 0; j < numCol; j++) { 
      ImageView imageView = new ImageView(this); 
       imageView.setImageResource(R.drawable.book1); 

       TextView textView = new TextView(this); 
       textView.setText("Java Tester"); 
       textView.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); 

       tblRow.addView(imageView,j); 
      } 

      HSV.addView(tblRow); 
      tblLayout.addView(HSV, i); 
     } 
    } 

} 
+0

+1 बहुत उपयोगी एक। – Praveenkumar

+1

मेरी खुशी ;-) –

+0

@omidnaz मैं निर्दिष्ट लिंक पर क्वायर लाइब्रेरी नहीं ढूंढ पा रहा था और मैं इसे हर जगह खोजता हूं लेकिन अभी भी फिन नहीं है .... क्या आप कृपया मुझे बता सकते हैं कि मैं यह पुस्तकालय कहां प्राप्त कर सकता हूं .. .. –