Android CircleMenu:旋转转盘选择Menu

Android CircleMenu是一个可以自由旋转类似转盘样式的选择Menu。其运行效果如动态图所示:



这在中国建设银行官方的APP中有用到该技术,下图这是中国建设银行官方APP的首页,其中的转盘明显就是一个Android CircleMenu:



Android CircleMenu在github上的项目主页是:https://github.com/zhangphil/Android-CircleMenu
Android CircleMenu用法比较简单,例如Java代码:

import android.app.Activity;import android.os.Bundle;import android.view.View;import android.widget.TextView;import android.widget.Toast;import com.szugyi.circlemenu.view.CircleImageView;import com.szugyi.circlemenu.view.CircleLayout;import com.szugyi.circlemenu.view.CircleLayout.OnItemClickListener;import com.szugyi.circlemenu.view.CircleLayout.OnItemSelectedListener;public class MainActivity extends Activity implements OnItemSelectedListener, OnItemClickListener{privateTextView selectedTextView;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);CircleLayout circleMenu = (CircleLayout)findViewById(R.id.main_circle_layout);circleMenu.setOnItemSelectedListener(this);circleMenu.setOnItemClickListener(this);//这个TextView仅仅作为演示转盘按钮以何为默认的选中项,//默认的最底部的那一条被选中,然后显示到该TextView中。selectedTextView = (TextView)findViewById(R.id.main_selected_textView);selectedTextView.setText(((CircleImageView)circleMenu.getSelectedItem()).getName());}//圆盘转动到底部,则认为该条目被选中@Overridepublic void onItemSelected(View view, int position, long id, String name) {selectedTextView.setText(name);}//选择了转盘中的某一条。@Overridepublic void onItemClick(View view, int position, long id, String name) {Toast.makeText(getApplicationContext(), getResources().getString(R.string.start_app) + " " + name, Toast.LENGTH_SHORT).show();}}


布局文件:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:circle="http://schemas.android.com/apk/res/com.szugyi.circlemenu"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    tools:context=".MainActivity" >    <com.szugyi.circlemenu.view.CircleLayout        android:id="@+id/main_circle_layout"        android:layout_width="fill_parent"        android:layout_height="fill_parent"        android:layout_above="@+id/main_selected_textView"        android:layout_gravity="center_horizontal"        circle:firstChildPosition="South"         circle:rotateToCenter="true"         circle:isRotating="true" >       <!--         circle:circleBackground="@drawable/green"  > -->        <com.szugyi.circlemenu.view.CircleImageView            android:id="@+id/main_facebook_image"            android:layout_width="35dp"            android:layout_height="35dp"            android:src="@drawable/icon_facebook"            circle:name="@string/facebook" />        <com.szugyi.circlemenu.view.CircleImageView            android:id="@+id/main_myspace_image"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:src="@drawable/icon_myspace"            circle:name="@string/myspace" />        <com.szugyi.circlemenu.view.CircleImageView            android:id="@+id/main_google_image"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:src="@drawable/icon_google"            circle:name="@string/google" />        <com.szugyi.circlemenu.view.CircleImageView            android:id="@+id/main_linkedin_image"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:src="@drawable/icon_linkedin"            circle:name="@string/linkedin" />        <com.szugyi.circlemenu.view.CircleImageView            android:id="@+id/main_twitter_image"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:src="@drawable/icon_twitter"            circle:name="@string/twitter" />        <com.szugyi.circlemenu.view.CircleImageView            android:id="@+id/main_wordpress_image"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:src="@drawable/icon_wordpress"            circle:name="@string/wordpress" />    </com.szugyi.circlemenu.view.CircleLayout>    <TextView        android:id="@+id/main_selected_textView"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_alignParentBottom="true"        android:layout_centerHorizontal="true"        android:layout_marginBottom="50dp"        android:textAppearance="?android:attr/textAppearanceLarge" /></RelativeLayout>


其中的Android Circle ImageView代表转盘中的图标。

更多相关文章

  1. Android中使用BottomNavigationBar实现仿微信底部按钮
  2. 【Android】listview选中行字体变大
  3. Android(安卓)CheckBox使用所遇到的坑
  4. Android(安卓)UI 常用控件讲解
  5. 单选按钮与复选框
  6. Android画廊效果
  7. Android(安卓)Eclipse 自动安装到真机(免去选择的麻烦)
  8. Android(安卓)AlertController的小bug?
  9. 通过自定义View,创建一个圆形指示器

随机推荐

  1. android sharedpreferences工具类
  2. Eclipse开发简易的Android服务器
  3. maven 学习笔记(二)-创建简单的eclipse+and
  4. android AppWidget 支持ListView
  5. Android开发环境配置
  6. android 模拟器中启用相机API支持
  7. android Dialog 背景问题
  8. 通过Titanium Studio为Android(安卓)APK
  9. Android(安卓)获取设备唯一号 unknown
  10. Dalvik虚拟机是如何执行程序的