2014-07-07 6 views
6

में देखी गई सूचीदृश्य को दोहराने के लिए कैसे करें जैसा कि नीचे दिया गया है, मैं एक सूची दृश्य को कार्यान्वित करना चाहता हूं। enter image description here"स्टार्ट" मेनू

जाहिर है यह एक CircledImageView के साथ एक पहनने योग्य सूची है। हालांकि मुझे लगता है कि कौन सा फ़ंक्शन मुझे मध्य दृश्य निर्धारित करने की अनुमति नहीं देता है। मैं भी नए आकार पर "आकार ऊपर" एनीमेशन और पुराने चयनित एक पर "आकार नीचे" करने में सक्षम होना चाहता हूं ... अभी मैंने एक बुनियादी ऑनस्कोल की कोशिश की लेकिन कोई सिगार नहीं।

 mListView.addOnScrollListener(new WearableListView.OnScrollListener() { 
       @Override 
       public void onScroll(int i) { 
        Log.d("Recycler","Scroll: "+i); 
       } 

       @Override 
       public void onAbsoluteScrollChange(int i) { 
        Log.d("Recycler","ABsScrollChange: "+i); 
       } 

       @Override 
       public void onScrollStateChanged(int i) { 
        Log.d("Recycler","ScrollState: "+i); 
       } 


       @Override 
       public void onCentralPositionChanged(int i) { 
        Log.d("Recycler","Center: "+i); 
       } 

      }); 

संपादित करें: ठीक है तो मैं अब जानते हैं कि कैसे केंद्र दृश्य खोजने के लिए। लेकिन मैं सोच रहा था कि अगर किसी ने यह पता लगाया कि वर्तमान दृश्य को कैसे पुनः प्राप्त किया जाए ताकि मैं वर्तमान चयनित दृश्य को संशोधित कर सकूं।

EDIT 2 ठीक है अब मैं चयनित दृश्य को संशोधित कर सकता हूं। फिर भी बाद एक वस्तु हालांकि सही का निशान हटाने ठीक से गुण दूर करने के लिए गर्म नहीं जानता ..

+0

मैं इसे लागू करना चाहता हूं। क्या आप यहां अपना कुछ कोड साझा करना चाहते हैं। – Sadi

+0

मैंने एक उदाहरण बनाया है और उसी पर एक पोस्ट लिखा है: http://www.technotalkative.com/android-wear-part-5-wearablelistview/ –

उत्तर

4

चाल अपने WearableListView.Item उपवर्ग में getProximityMinValue() और getProximityMaxValue() लागू करने के लिए है:

private final class MyItemView extends FrameLayout implements WearableListView.Item { 

    final CircledImageView image; 
    final TextView text; 

    public MyItemView(Context context) { 
    super(context); 
    View.inflate(context, R.layout.wearablelistview_item, this); 
    image = (CircledImageView) findViewById(R.id.image); 
    text = (TextView) findViewById(R.id.text); 
    } 

    @Override 
    public float getProximityMinValue() { 
    return mDefaultCircleRadius; 
    } 

    @Override 
    public float getProximityMaxValue() { 
    return mSelectedCircleRadius; 
    } 

    @Override 
    public float getCurrentProximityValue() { 
    return image.getCircleRadius(); 
    } 

    @Override 
    public void setScalingAnimatorValue(float value) { 
    image.setCircleRadius(value); 
    image.setCircleRadiusPressed(value); 
    } 

    @Override 
    public void onScaleUpStart() { 
    image.setAlpha(1f); 
    text.setAlpha(1f); 
    } 

    @Override 
    public void onScaleDownStart() { 
    image.setAlpha(0.5f); 
    text.setAlpha(0.5f); 
    } 
} 

पूर्ण काम कर रहे उदाहरण source code here

+0

यह अभी भी एक हेड स्पेस या शीर्षक रखने के मुद्दे को हल नहीं करता है सूची में बार जो Google पहनने के लिए सेटिंग्स पर करता है। कोई सुझाव? मैं मुद्दा कहता हूं क्योंकि कई लोगों ने यह पूछा कि यह कैसे किया जाता है और कोई भी उत्तर के साथ नहीं आया –

+0

@ माहेशेरेन \ \ \ \ \ ndk \ samples \ android-20 \ wearable \ Timer' – Garf1eld

1

मैं अपने पहनने योग्य सूची दृश्य के शीर्ष पर एक शीर्षक प्रदर्शित करने की भी तलाश कर रहा था।

मैंने अपने पहनने योग्य सूची दृश्य लेआउट के हिस्से के रूप में एक टेक्स्ट व्यू तत्व जोड़कर इस समस्या का समाधान किया। साथ ही, ऐप सेट करने की अनुशंसा की जाती है: स्क्रॉल करते समय nicer सूची दृश्य की अनुमति देने के लिए layout_box "left | bottom | right" पर।

<?xml version="1.0" encoding="utf-8"?> 
 
<android.support.wearable.view.BoxInsetLayout 
 
    xmlns:android="http://schemas.android.com/apk/res/android" 
 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
 
    android:layout_height="match_parent" 
 
    android:layout_width="match_parent"> 
 
    
 
    <FrameLayout 
 
     android:id="@+id/frame_layout" 
 
     android:layout_height="match_parent" 
 
     android:layout_width="match_parent" 
 
     app:layout_box="left|bottom|right"> 
 
    
 
     <android.support.wearable.view.WearableListView 
 
      android:id="@+id/wearable_List" 
 
      android:layout_height="match_parent" 
 
      android:layout_width="match_parent" 
 
      android:background="#434343"> 
 
     </android.support.wearable.view.WearableListView> 
 
    
 
     <TextView 
 
      android:id="@+id/title" 
 
      android:layout_width="wrap_content" 
 
      android:layout_height="35dp" 
 
      android:gravity="bottom" 
 
      android:textSize="20sp" 
 
      android:fontFamily="courrier" 
 
      android:layout_centerHorizontal="true" 
 
      android:layout_alignParentTop="true" 
 
      android:text="Settings"/> 
 
    
 
    </ FrameLayout > 
 
</android.support.wearable.view.BoxInsetLayout>

आगे पढ़ने के लिए, आप भी इस उदाहरण पर एक नज़र ले जा सकते हैं जो बातें स्पष्ट रूप से बताते हैं:: http://www.learnandroidwear.com/sample-1

यहाँ मेरी लेआउट एक्सएमएल (TextView तत्व नोटिस) है

2

यह यहां दिए गए उत्तरों से आसान है। बस इस तरह onCenterPosition और onNonCenterPosition का उपयोग करें:

public class WearableListItemLayout extends LinearLayout implements WearableListView.OnCenterProximityListener { 

    private ImageView mCircle; 
    private TextView mName; 

    private final float mFadedTextAlpha; 
    private final int mFadedCircleColor; 
    private final int mChosenCircleColor; 

    public WearableListItemLayout(Context context) { 
     this(context, null); 
    } 

    public WearableListItemLayout(Context context, AttributeSet attrs) { 
     this(context, attrs, 0); 
    } 

    public WearableListItemLayout(Context context, AttributeSet attrs, 
            int defStyle) { 
     super(context, attrs, defStyle); 

     mFadedTextAlpha = 200f/100f; 
     mFadedCircleColor = getResources().getColor(R.color.grey); 
     mChosenCircleColor = getResources().getColor(R.color.blue); 
    } 

    // Get references to the icon and text in the item layout definition 
    @Override 
    protected void onFinishInflate() { 
     super.onFinishInflate(); 
     // These are defined in the layout file for list items 
     // (see next section) 
     mCircle = (ImageView) findViewById(R.id.circle); 
     mName = (TextView) findViewById(R.id.name); 
    } 

    @Override 
    public void onCenterPosition(boolean animate) { 
     mName.setAlpha(1f); 
     ((GradientDrawable) mCircle.getDrawable()).setColor(mChosenCircleColor); 
    } 

    @Override 
    public void onNonCenterPosition(boolean animate) { 
     ((GradientDrawable) mCircle.getDrawable()).setColor(mFadedCircleColor); 
     mName.setAlpha(mFadedTextAlpha); 
    } 
} 

नोट: यह सूचीदृश्य जो जब केंद्र में एक रंगीन गोला हो जाता है के लिए है, लेकिन यह आसानी से आप क्या चाहते हैं के लिए समायोजित किया जा सकता।

संबंधित मुद्दे