2016-07-19 6 views
1

Wie kann ich eine kreisförmige Liste für runde Uhren wie in Android Wear 2.0 erstellen?Wie man kreisförmige Ansicht auf Android-Verschleiß erstellen?

So:

enter image description here

Kreisliste wird in Android Wear App Launcher gesehen.

+0

Bitte überprüfen Sie diesen Blog-Artikel - http://android-developers.blogspot.com/2016/04/build-beautifully-for-android-wear.html – Sufian

+0

Das wird nicht helfen, hat überprüft. BoxInsetLayout setzt eine quadratische Einfügung, aber hier sind die Elemente an der Kante ausgerichtet (auch die Bildlaufleiste ist kreisförmig) – adhiti

Antwort

0

Dies ist jetzt mit Android Wear 2.0 WearableRecyclerView möglich.

Nach Android Developer Docs:

Wear 2.0 führt die WearableRecyclerView Klasse für die Darstellung und eine vertikale Liste von Elementen für runde Displays optimiert manipulieren. WearableRecyclerView erweitert die vorhandene RecyclerView Klasse auf bieten ein gebogenes Layout und eine kreisförmige Scroll-Geste in tragbaren Apps.

Sie möchten vielleicht mehr über Android Wear 2.0 Preview 3 lesen.

+0

Leute, die diese Antwort ablehnen, bitte posten Sie Ihre Argumentation mindestens. Dies ist keine "Nur-Link" -Antwort. Er zitiert den relevanten Text aus dem Link. Und wenn Sie eine bessere Antwort haben, dann verstecken Sie sich bitte nicht hinter einer Abstimmung, sondern posten Sie sie als Antwort. – Sufian

1

Zuerst müssen Sie Ihre ListView durch eine WearableRecyclerView ersetzen. Es kann wie ein normales ListView verwendet werden. Aber stellen Sie sicher, Sie importieren Sie die richtige von android.support.wear.widget. NICHT verwenden die von android.support.wearable.view. Dieser sollte durchgestrichen sein, so dass es nicht lange dauern wird zu überprüfen, ob Sie den richtigen verwenden. Wenn nur ein WearableRecyclerView zur Auswahl steht, stellen Sie sicher, dass compile 'com.android.support:wear:27.0.0' zu den Abhängigkeiten in Ihrer build.gradle (Verschleiß) Datei hinzugefügt wird. Stellen Sie außerdem sicher, dass Sie <android.support.wear.widget.WearableRecyclerView/> in Ihrer activity.xml verwenden. Wenn Sie nur einen Kreislistview ohne benutzerdefinierten Elementskalierung wollen, rufen Sie einfach diese in Ihrem onLayoutInflated() Methode:

your_recyclerview.setEdgeItemsCenteringEnabled(true); 
your_recyclerview.setLayoutManager(new WearableLinearLayoutManager(your_activity_context)); 

Wenn Sie möchten Artikel Skalierung, wenn sie näher an der Mitte des Bildschirms zu bekommen, werden die Dinge ein bisschen komplizierter.

CustomScrollingLayoutCallback customScrollingLayoutCallback = new CustomScrollingLayoutCallback(); 
    your_recycler_view.setLayoutManager(new WearableLinearLayoutManager(your_context, customScrollingLayoutCallback)); 
    your_recycler_view.setCircularScrollingGestureEnabled(true); 

getan:

Erstens: fügen Sie diese in Ihrem Activity.java: die folgenden

private class CustomScrollingLayoutCallback extends WearableLinearLayoutManager.LayoutCallback { 

     private static final float MAX_ICON_PROGRESS = 2F; 

     @Override 
     public void onLayoutFinished(View child, RecyclerView parent) { 

      float centerOffset = ((float) child.getHeight()/2.0f)/(float) parent.getHeight(); 
      float yRelativeToCenterOffset = (child.getY()/parent.getHeight()) + centerOffset; 

      float progresstoCenter = (float) Math.sin(yRelativeToCenterOffset * Math.PI); 

      float mProgressToCenter = Math.abs(0.5f - yRelativeToCenterOffset); 

      mProgressToCenter = Math.min(mProgressToCenter, MAX_ICON_PROGRESS); 

      child.setScaleX(1 - mProgressToCenter); 
      child.setScaleY(1 - mProgressToCenter); 
      child.setX(+(1 - progresstoCenter) * 100); 
     } 

    } 

dann auf Ihre onLayoutInflated zurück() Methode und geben.

Verwandte Themen