快速设置
将视图添加到布局中
<com.sababado.circularview.CircularView
android:id="@+id/circular_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:centerBackgroundColor="#33b5e5"
app:centerDrawable="@drawable/center_bg"/> Using the custom attributes requires the following in the layout file. Example
xmlns:app="http://schemas.android.com/apk/res-auto" 添加标记
标记是在视图周围视觉“浮动”的对象。每个
标记可以表示数据,也可以简单地用于视觉效果。
标记必须通过 CircularViewAdapter 进行自定义。
public class MySimpleCircularViewAdapter extends
SimpleCircularViewAdapter {
@Override
public int getCount() {
// This count will tell the circular view how many markers to use.
return 20;
}
@Override
public void setupMarker(final int position, final Marker marker) {
// Setup and customize markers here. This is called every time a marker is to be displayed.
// 0 >= position > getCount()
// The marker is intended to be reused. It will never be null.
marker.setSrc(R.drawable.ic_launcher);
marker.setFitToCircle(true);
marker.setRadius(10 + 2 * position);
} }
一旦 CircularViewAdapter 实现准备就绪,就可以在 CircularView 对象上进行设置。
mAdapter = new MySimpleCircularViewAdapter(); circularView =
(CircularView) findViewById(R.id.circular_view);
circularView.setAdapter(mAdapter); Receiving click listeners
可以从 CircularView 接收点击事件。
要接收点击事件,请将 CircularView.OnClickListener 设置为
circularView.setOnCircularViewObjectClickListener(l)。
例如:
circularView.setOnCircularViewObjectClickListener(new
CircularView.OnClickListener() {
public void onClick(final CircularView view) {
Toast.makeText(MainActivity.this, "Clicked center", Toast.LENGTH_SHORT).show();
}
public void onMarkerClick(CircularView view, Marker marker, int position) {
Toast.makeText(MainActivity.this, "Clicked " + marker.getId(), Toast.LENGTH_SHORT).show();
} }); Animation
在库中内置了一些简单的动画
时刻。
动画高亮度数
CircularView 有 animateHighlightedDegree(start, end, duration)。
该方法采用以度为单位的开始和结束位置,以及一个长值
在动画期间。突出显示的程度是指
哪个程度是“突出”或“重点”。当学位集中
它可以为 Marker 自动触发辅助动画。
可以设置监听器在动画结束时接收回调,
以及它停在什么物体上。
circularView.setOnHighlightAnimationEndListener(new
CircularView.OnHighlightAnimationEndListener() {
@Override
public void onHighlightAnimationEnd(CircularView view, Marker marker, int position) {
Toast.makeText(MainActivity.this, "Spin ends on " + marker.getId(), Toast.LENGTH_SHORT).show();
} }); Marker Animation Options
标记有一个与之相关的简单动画;上和下。它
可以重复,也可以发生一次。 CircularView 可以触发
animateHighlightedDegree(开始,结束,持续时间)时弹跳动画
叫做。可以通过调用相同的方法来关闭弹跳动画
带有附加标志的方法。例如:
animateHighlightedDegree(开始、结束、持续时间、应该动画标记)
此外,还可以控制标记是否应该在标记时反弹
突出显示,而突出显示的度值是恒定的(又名
没有动画)。
// 允许标记在
高亮动画未运行。
circularView.setAnimateMarkerOnStillHighlight(true); // 结合
上面带有以下内容,以便其位置的标记将
动画在开始。
圆形视图.setHighlightedDegree(圆形视图.BOTTOM);后者
线是必要的,以防反弹动画也应该运行
原来。突出显示的度数设置为
CircularView.HIGHLIGHT_NONE 默认情况下。
Proguard
如果使用 proguard,请将以下内容添加到您的 proguard 脚本中
确保动画运行
# keep setters in Views so that animations can still work.
# see http://proguard.sourceforge.net/manual/examples.html#beans
-keepclassmembers public class * extends android.view.View { void set*(***); *** get*(); }
# keep setters in CircularViewObjects so that animations can still work.
-keepclassmembers public class * extends com.sababado.circularview.CircularViewObject { void set*(***);
*** get*(); } Developer Hints
可以在 CircularViewObject 上自定义的每个属性也可以
在 Marker 对象上进行自定义。一个 Marker 对象从一个
圆形视图对象。前者用作漂浮的较小物体
围绕中心物体。中心对象是一个 CircularViewObject。
默认情况下,标记是按照它们创建的顺序绘制的;
意思是如果标记重叠,那么第一个标记将部分
被下一个标记覆盖。可以设置一个选项来绘制
在它旁边的标记顶部突出显示标记
圆形视图.setDrawHighlightedMarkerOnTop(真);。标志是假的
默认。任何 CircularViewObject 都可以隐藏和显示
在布局中使用 setVisibility(int) 独立于其他对象
编辑器使用属性 editMode_markerCount 和
editMode_markerRadius 查看标记的大小和布局。不是
提供半径将显示默认半径。它究竟做了什么
在问题中提出。