导航:首页 > 操作系统 > android圆形旋转菜单

android圆形旋转菜单

发布时间:2022-09-27 05:35:53

android 怎么把button变成圆形

使用shape,请看下面截图,例子来自于android学习手册,360手机助手中下载,里面有108个例子、源码还有文档。



<?xml version="1.0" encoding="utf-8"?>

<shape

xmlns:Android="http://schemas.android.com/apk/res/android"

android:shape="oval">

<!-- 填充的颜色 -->

<solid android:color="#FFFFFF"/>

<!-- 设置按钮的四个角为弧形 -->

<!-- android:radius 弧形的半径 -->

<corners android:radius="360dip"/>

<!-- padding: Button 里面的文字与Button边界的间隔 -->

<padding

android:left="10dp"

android:top="10dp"

android:right="10dp"

android:bottom="10dp"

/>

</shape>

-----Main layout文件

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:orientation="vertical"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

>

<TextView

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="@string/soft_info"

/>

<!—直接设置背景 -->

<Button

android:id="@+id/roundBtn1"

android:background="@drawable/btn_oval"

android:layout_width="50dip"

android:layout_height="50dip"

/>

<!— 调用shape自定义xml文件 -->

<Button

android:id="@+id/roundBtn"

android:text="椭圆按钮"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:background="@drawable/main_menu_btnshape"

/>

</LinearLayout>

----acitivity文件

public class MyLifeActivity extends Activity {

/** Called when the activity is first created. */

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

}

}

⑵ android中,如何做圆形的button按钮

自己绘制圆形的图片,然后在button布局里面用BackgroundDrawable设置为button背景。android中是不带圆形的button的

⑶ android开发怎样改变菜单的形状

有一种半圆形弹出菜单,你可以看看,链接:http://www.cnblogs.com/mudoot/archive/2012/01/19/path_composer_menu.html

⑷ Android圆形菜单,做一个像Iphone的Assistivetouch,可移动悬浮窗口,而且点开有各种功能,大神给点思路

1、可移动悬浮,需要很高的权限,向系统申请弹窗权限。
2、如果是跨界面,需要services中创建,并显示
3、点开圆形菜单建议使用看下这个:https://github.com/Nightonke/BoomMenu

⑸ 如何在android studio 中实现圆饼图的转动

/**
* 随手记中可以任意旋转的炫酷饼图的实现原理
*
* 小记:
* 在实现的过程中,主要是用到了一些数学计算来实现角度和屏幕位置坐标的计算
* 关于任意两个点之间的角度计算的问题,一开始想了很久没有结果,最后,一个偶然的灵光,让整个
* 事情变得简单起来,就是计算任意两个点相对于中心坐标的角度的时候,首先,计算
* 每个点相对于x轴正方向的角度,这样,总可以将其转化为计算直角三角形的内角计算问题
* 再将两次计算的角度进行减法运算,就实现了。是不是很简单?呵呵,对于像我们这样数学
* 没有学好的开发者来说,也只有这样化难为简了
*
* @author liner
*
*/
public class PieChart extends View{
public static final String TAG = "PieChart";
public static final int ALPHA = 100;
public static final int ANIMATION_DURATION = 800;
public static final int ANIMATION_STATE_RUNNING = 1;
public static final int ANIMATION_STATE_DOWN = 2;
/**
* 不要问我这个值是怎么设置的。这个就是图片中的一大块圆形区域对应的长方形四个边的坐标位置
* 具体的值,自己需要多次尝试并调整了。这样,我们的饼图就是相对于这个区域来画的
*/
private static final RectF OVAL = new RectF(18,49,303,340);
private int[] colors; //每部分的颜色值
private int[] values; //每部分的大小
private int[] degrees; //值转换成角度
private String[] titles; //每部分的内容
private Paint paint;
private Paint maskPaint;
private Paint textPaint;
private Point lastEventPoint;
private int currentTargetIndex = -1;
private Point center; //这个是饼图的中心位置
private int eventRadius = 0; //事件距离饼图中心的距离
//测试的时候使用的
//private ChartClickListener clickListener;
private Bitmap mask; //用于遮罩的Bitmap
private int startDegree = 90; //让初始的时候,圆饼是从箭头位置开始画出的
private int animState = ANIMATION_STATE_DOWN;
private boolean animEnabled = false;
private long animStartTime;
public PieChart(Context context) {
super(context);
init();
}
public PieChart(Context context, AttributeSet attrs){
this(context, attrs, 0);
}
public PieChart(Context context, AttributeSet attrs, int defStyle){
super(context, attrs, defStyle);
init();
}
private void init(){
paint = new Paint();
maskPaint = new Paint();
textPaint = new Paint();
textPaint.setColor(Color.WHITE);
textPaint.setTypeface(Typeface.DEFAULT_BOLD);
textPaint.setAlpha(100);
textPaint.setTextSize(16);
values = new int[]{
60,
90,
30,
50,
70
};
//titles = new String[]{
//"川菜",
//"徽菜",
//"粤菜",
//"闽菜",
//"湘菜"
//};
//测试文字居中显示
titles = new String[]{
"我是三岁",
"说了算四大皆空",
"士大",
"史蒂芬森地",
"湘"
};
colors = new int[]{
Color.argb(ALPHA, 249, 64, 64),
Color.argb(ALPHA, 0, 255, 0),
Color.argb(ALPHA, 255, 0, 255),
Color.argb(ALPHA, 255, 255, 0),
Color.argb(ALPHA, 0, 255, 255)
};
degrees = getDegrees();
//Drawable d = getResources().getDrawable(R.drawable.mask);
mask = BitmapFactory.decodeResource(getResources(), R.drawable.mask);
//获取初始位置的时候,下方箭头所在的区域
animEnabled = true; //同时,启动动画
}
//public void setChartClickListener(ChartClickListener l){
//this.clickListener = l;
//}
//计算总和
private int sum(int[] values){
int sum = 0;
for(int i=0; i<values.length;i++){
sum += values[i];
}
return sum;
}
/**
* 根据每部分所占的比例,来计算每个区域在整个圆中所占的角度
* 但是,有个小细节,就是计算的时候注意,可能并不能整除的情况,这个时候,为了
* 避免所有的角度和小于360度的情况,姑且将剩余的部分送给某个部分,反正也不影响
* @return
*/
private int[] getDegrees(){
int sum = this.sum(values);
int[] degrees = new int[values.length];
for(int i=0; i<values.length; i++){
degrees[i] = (int)Math.floor((double)((double)values[i]/(double)sum)*360);
//Log.v("Angle", angles[i]+"");
}
int angleSum = this.sum(degrees);
if(angleSum != 360){
//上面的计算可能导致和小于360
int c = 360 - angleSum;
degrees[values.length-1] += c; //姑且让最后一个的值稍大点
}
return degrees;
}
/**
* 重写这个方法来画出整个界面
*/
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
if(animEnabled){
/**
* 说明是启动的时候,需要旋转着画出饼图
*/
Log.e(TAG, "anim enabled");
if(animState == ANIMATION_STATE_DOWN){
animStartTime = SystemClock.uptimeMillis();
animState = ANIMATION_STATE_RUNNING;

}

final long currentTimeDiff = SystemClock.uptimeMillis() - animStartTime;
int currentMaxDegree = (int)((float)currentTimeDiff/ANIMATION_DURATION*360f);
Log.e(TAG, "当前最大的度数为:"+currentMaxDegree);
if(currentMaxDegree >= 360){
//动画结束状态,停止绘制
currentMaxDegree = 360;
animState = ANIMATION_STATE_DOWN;
animEnabled = false;
}
int[] degrees = getDegrees();
int startAngle = this.startDegree;

//获取当前时刻最大可以旋转的角度所位于的区域
int maxIndex = getEventPart(currentMaxDegree);

//根据不同的颜色画饼图
for(int i=0; i<= maxIndex; i++){
int currentDegree = degrees[i];

if(i== maxIndex){
//对于当前最后一个绘制区域,可能只是一部分,需要获取其偏移量
currentDegree = getOffsetOfPartStart(currentMaxDegree, maxIndex);
}

if(i > 0){
//注意,每次画饼图,记得计算startAngle
startAngle += degrees[i-1];
}

paint.setColor(colors[i]);
canvas.drawArc(OVAL, startAngle, currentDegree, true, paint);
}

if(animState == ANIMATION_STATE_DOWN){
//如果动画结束了,则调整当前箭头位于所在区域的中心方向
onStop();

}else{
postInvalidate();
}

}else{
int[] degrees = getDegrees();
int startAngle = this.startDegree;

/**
* 每个区域的颜色不同,但是这里只要控制好每个区域的角度就可以了,整个是个圆
*/
for(int i=0; i<values.length; i++){
paint.setColor(colors[i]);
if(i>0){
startAngle += degrees[i-1];
}
canvas.drawArc(OVAL, startAngle, degrees[i], true, paint);
}
}


/**
* 画出饼图之后,画遮罩图片,这样图片就位于饼图之上了,形成了遮罩的效果
*/
canvas.drawBitmap(mask, 0, 0, maskPaint);

/**
* 根据当前计算得到的箭头所在区域显示该区域代表的信息
*/
if(currentTargetIndex >= 0){
String title = titles[currentTargetIndex];
textPaint.setColor(colors[currentTargetIndex]);
//简单作个计算,让文字居中显示
int width = title.length()*17;
canvas.drawText(title, 157-width/2+3, 383, textPaint);
}
}

/**
* 处理饼图的转动
*/
public boolean onTouchEvent(MotionEvent event){

if(animEnabled && animState == ANIMATION_STATE_RUNNING){
return super.onTouchEvent(event);
}

Point eventPoint = getEventAbsoluteLocation(event);
computeCenter(); //计算中心坐标

//计算当前位置相对于x轴正方向的角度
//在下面这个方法中计算了eventRadius的
int newAngle = getEventAngle(eventPoint, center);

int action = event.getAction();

switch (action) {
case MotionEvent.ACTION_DOWN:
lastEventPoint = eventPoint;
if(eventRadius > getRadius()){
/**
* 只有点在饼图内部才需要处理转动,否则直接返回
*/
Log.e(TAG, "当前位置超出了半径:"+eventRadius+">"+getRadius());
return super.onTouchEvent(event);
}
break;
case MotionEvent.ACTION_MOVE:
//这里处理滑动
rotate(eventPoint, newAngle);
//处理之后,记得更新lastEventPoint
lastEventPoint = eventPoint;
break;
case MotionEvent.ACTION_UP:
onStop();
break;
default:
break;
}

return true;
}

/**
* 当我们停止旋转的时候,如果当前下方箭头位于某个区域的非中心位置,则我们需要计算
* 偏移量,并且将箭头指向中心位置
*/
private void onStop() {
int targetAngle = getTargetDegree();
currentTargetIndex = getEventPart(targetAngle);
int offset = getOffsetOfPartCenter(targetAngle, currentTargetIndex);
/**
* offset>0,说明当前箭头位于中心位置右边,则所有区域沿着顺时针旋转offset大小的角度
* offset<0,正好相反
*/
startDegree += offset;
postInvalidateDelayed(200);
}
private void rotate(Point eventPoint, int newDegree) {
//计算上一个位置相对于x轴正方向的角度
int lastDegree = getEventAngle(lastEventPoint, center);

/**
* 其实转动就是不断的更新画圆弧时候的起始角度,这样,每次从新的起始角度重画圆弧就形成了转动的效果
*/
startDegree += newDegree-lastDegree;

//转多圈的时候,限定startAngle始终在-360-360度之间
if(startDegree >= 360){
startDegree -= 360;
}else if(startDegree <= -360){
startDegree += 360;
}

Log.e(TAG, "当前startAngle:"+startDegree);

//获取当前下方箭头所在的区域,这样在onDraw的时候就会转到不同区域显示的是当前区域对应的信息
int targetDegree = getTargetDegree();
currentTargetIndex = getEventPart(targetDegree);

//请求重新绘制界面,调用onDraw方法
postInvalidate();
}


/**
* 获取当前事件event相对于屏幕的坐标
* @param event
* @return
*/
protected Point getEventAbsoluteLocation(MotionEvent event){
int[] location = new int[2];
this.getLocationOnScreen(location); //当前控件在屏幕上的位置

int x = (int)event.getX();
int y = (int)event.getY();

x += location[0];
y += location[1]; //这样x,y就代表当前事件相对于整个屏幕的坐标

Point p = new Point(x, y);

Log.v(TAG, "事件坐标:"+p.toString());

return p;
}
/**
* 获取当前饼图的中心坐标,相对于屏幕左上角
*/
protected void computeCenter(){
if(center == null){
int x = (int)OVAL.left + (int)((OVAL.right-OVAL.left)/2f);
int y = (int)OVAL.top + (int)((OVAL.bottom - OVAL.top)/2f)+50; //状态栏的高度是50
center = new Point(x,y);
//Log.v(TAG, "中心坐标:"+center.toString());
}
}
/**
* 获取半径
*/
protected int getRadius(){
int radius = (int)((OVAL.right-OVAL.left)/2f);
//Log.v(TAG, "半径:"+radius);
return radius;
}
/**
* 获取事件坐标相对于饼图的中心x轴正方向的角度
* 这里就是坐标系的转换,本例中使用饼图的中心作为坐标中心,就是我们从初中到大学一直使用的"正常"坐标系。
* 但是涉及到圆的转动,本例中一律相对于x正方向顺时针来计算某个事件在坐标系中的位置
* @param eventPoint
* @param center
* @return
*/
protected int getEventAngle(Point eventPoint, Point center){
int x = eventPoint.x - center.x;//x轴方向的偏移量
int y = eventPoint.y - center.y; //y轴方向的偏移量
//Log.v(TAG, "直角三角形两直边长度:"+x+","+y);
double z = Math.hypot(Math.abs(x), Math.abs(y)); //求直角三角形斜边的长度
//Log.v(TAG, "斜边长度:"+z);
eventRadius = (int)z;
double sinA = (double)Math.abs(y)/z;
//Log.v(TAG, "sinA="+sinA);
double asin = Math.asin(sinA); //求反正玄,得到当前点和x轴的角度,是最小的那个
//Log.v(TAG, "当前相对偏移角度的反正弦:"+asin);
int degree = (int)(asin/3.14f*180f);
//Log.v(TAG, "当前相对偏移角度:"+angle);
//下面就需要根据x,y的正负,来判断当前点和x轴的正方向的夹角
int realDegree = 0;
if(x<=0 && y<=0){
//左上方,返回180+angle
realDegree = 180+degree;
}else if(x>=0 && y<=0){
//右上方,返回360-angle
realDegree = 360-degree;
}else if(x<=0 && y>=0){
//左下方,返回180-angle
realDegree = 180-degree;
}else{
//右下方,直接返回
realDegree = degree;
}
//Log.v(TAG, "当前事件相对于中心坐标x轴正方形的顺时针偏移角度为:"+realAngle);
return realDegree;
}
/**
* 获取当前下方箭头位置相对于startDegree的角度值
* 注意,下方箭头相对于x轴正方向是90度
* @return
*/
protected int getTargetDegree(){
int targetDegree = -1;
int tmpStart = startDegree;
/**
* 如果当前startAngle为负数,则直接+360,转换为正值
*/
if(tmpStart < 0){
tmpStart += 360;
}
if(tmpStart < 90){
/**
* 如果startAngle小于90度(可能为负数)
*/
targetDegree = 90 - tmpStart;
}else{
/**
* 如果startAngle大于90,由于在每次计算startAngle的时候,限定了其最大为360度,所以
* 直接可以按照如下公式计算
*/
targetDegree = 360 + 90 - tmpStart;
部分代码 网络知道限制字数 下载附件查看

⑹ android的自定圆盘菜单怎么做

1、通用模式

上图是图片加文字,如果我想换成按钮呢,或者我只需要图片。这里就需要定制。怎么办呢,我采用了适配模式,大家都还记得 ListView的用法,我这里也借鉴了一下:

public void setAdapter(ListAdapter mAdapter) { this.mAdapter = mAdapter;
}123

这样就可以实现Menu的高度定制。

2、构建菜单项

代码参考buildMenuItems(),对mAdapter遍历获取子View,添加点击事件,调用addView()添加到ViewGroup,这个时候系统就会调用onMeasure()对子View计算大小。

3、计算item大小

代码参考measureMyself()和measureChildViews(),确定每个item的尺寸大小。

4、item布局

首先计算item(x,y)距离圆心的长度,我画了一个草图:

需要重写onTouchEvent()方法,并把返回值改为true。处理手势按下(ACTION_DOWN),抬起(ACTION_UP)的状态。

首先我们要判断手指按下是否在阴影局域内。注意手指按下是指尖局域与屏幕接触,并不是一点,所以有误差。

x = event.getX();
y = event.getY();if ((x - 圆心x) * (x - 圆心x) + (y - 圆心y) * (y - 圆心y) < (圆心x+ 误差) * (圆心y+ 误差)) {
isRange = true;
}12345

然后我们要计算运动的速度,我刚开始的想法是用重力加速度,非常感谢我同事小贾,他给了我更好的意见:速度=距离/时间。

ACTION_DOWN:

lastTouchTime = System.currentTimeMillis();1

ACTION_UP:

long timeStamp = System.currentTimeMillis() - lastTouchTime;float distance = (float) Math.sqrt((x1 - x) * (x1 - x) + (y1 - y) * (y1 - y)); float speed = distance / timeStamp;123

然后我们通过对比手指按下的x的坐标,和抬起x的坐标,来判断用户是向左滑,还是右滑。

if (x1 - x > 0) {
isLeft = false;
} else {
isLeft = true;
}12345

最后通过handler来改变每次运动的角度,使Menu很自然的旋转了起来:

if (isLeft) { //向左转动
offsetRotation -= ANGLE;
} else { //向右转动
offsetRotation += ANGLE;
} //速度衰减
speed -= SPEED_ATTENUATION;
invalidate();//重绘
handler.sendEmptyMessageDelayed(EMPTY_MESSAGE, 50);1234567891011

使用

1、xml布局

<com.github.ws.viewdemo.widget.CircleMenuLayout
android:id="@+id/cm"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#f0f0f0">

</com.github.ws.viewdemo.widget.CircleMenuLayout>1234567

2、class文件

circleMenuLayout.setAdapter(new MyAdapter());

circleMenuLayout.setOnItemClickListener(new CircleMenuLayout.OnItemClickListener() {
@Override public void onItemClickListener(View v, int position) {
Toast.makeText(MainActivity.this, mList.get(position).text + "", Toast.LENGTH_SHORT).show();
}
});12345678

源码我已上传到github,地址https://github.com/HpWens/ViewDemo,再一次感谢大家的关注。

⑺ Android自定义控件做一个圆形菜单,默认圆最上面的被选中,在圆形的中间显示选中文本,怎么实现

中国建设银行的选择按钮样式
https://www..com/s?wd=android%20%20%E5%9C%86%E5%BD%A2%E6%97%8B%E8%BD%AC%E8%8F%9C%E5%8D%95&rsv_spt=1&rsv_iqid=0xb9019cbe00085435&issp=1&f=3&rsv_bp=1&rsv_idx=2&ie=utf-8&rqlang=cn&tn=home_pg&rsv_enter=0&oq=android%2520%25E5%258E%259F%25E5%259E%258B%25E6%2597%258B%25E8%25BD%25AC%25E8%258F%259C%25E5%258D%2595&rsv_t=0f90uQj22EmGTWGU%%2B6JSxji%2FG%2FXZoR&rsv_pq=db4dc14a0008d994&inputT=5994&rsv_sug3=87&rsv_sug1=57&rsv_sug7=100&prefixsug=android%2520%2520%25E5%259C%2586%25E5%25BD%25A2%25E6%2597%258B%25E8%25BD%25AC%25E8%258F%259C%25E5%258D%2595&rsp=0&rsv_sug4=6690

⑻ android中使用canvas.drawText函数可否设置旋转

使用Paint类的breakText对Text进行分解 然后分别使用Canvas的drawText进行绘制

⑼ 做一个Android悬浮窗口点击后展开一个圆形菜单,圆形菜单放的是功能有点击事件,请大神给我一个逻辑

https://github.com/ogaclejapan/ArcLayout
你可以看下这个

⑽ android中如何让图标绕一个中心点旋转

1、定义一个ImageView
定义一个ImageView是为了装载图片,其中的图片将被rotate用来进行旋转,其他View亦可。
资源文件为
java代码
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:id="@+id/infoOperating"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/operating"
android:scaleType="center">
</ImageView>
</LinearLayout>
其中的android:src为图片内容,可使用附件中的图片。
java代码为
Java代码
ImageView infoOperatingIV = (ImageView)findViewById(R.id.infoOperating);

2、定义rotate旋转效果
在res/anim文件夹下新建tip.xml文件,内容如下
Java代码
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<rotate
android:fromDegrees="0"
android:toDegrees="359"
android:ration="500"
android:repeatCount="-1"
android:pivotX="50%"
android:pivotY="50%" />
</set>
含义表示从0到359度开始循环旋转,0-359(若设置成360在停止时会出现停顿现象)度旋转所用时间为500ms,旋转中心距离view的左顶点为50%距离,距离view的上边缘为50%距离,即正中心,具体每个含义见下面的具体属性介绍。
java代码为
Java代码
Animation operatingAnim = AnimationUtils.loadAnimation(this, R.anim.tip);
LinearInterpolator lin = new LinearInterpolator();
operatingAnim.setInterpolator(lin);
setInterpolator表示设置旋转速率。LinearInterpolator为匀速效果,Accelerateinterpolator为加速效果、DecelerateInterpolator为减速效果,具体可见下面android:interpolator的介绍。

a. 关于其中的属性意义如下(红色部分加以注意):
android:fromDegrees 起始的角度度数
android:toDegrees 结束的角度度数,负数表示逆时针,正数表示顺时针。如10圈则比android:fromDegrees大3600即可
android:pivotX 旋转中心的X坐标
浮点数或是百分比。浮点数表示相对于Object的左边缘,如5; 百分比表示相对于Object的左边缘,如5%; 另一种百分比表示相对于父容器的左边缘,如5%p; 一般设置为50%表示在Object中心
android:pivotY 旋转中心的Y坐标
浮点数或是百分比。浮点数表示相对于Object的上边缘,如5; 百分比表示相对于Object的上边缘,如5%; 另一种百分比表示相对于父容器的上边缘,如5%p; 一般设置为50%表示在Object中心
android:ration 表示从android:fromDegrees转动到android:toDegrees所花费的时间,单位为毫秒。可以用来计算速度。
android:interpolator表示变化率,但不是运行速度。一个插补属性,可以将动画效果设置为加速,减速,反复,反弹等。默认为开始和结束慢中间快,
android:startOffset 在调用start函数之后等待开始运行的时间,单位为毫秒,若为10,表示10ms后开始运行
android:repeatCount 重复的次数,默认为0,必须是int,可以为-1表示不停止
android:repeatMode 重复的模式,默认为restart,即重头开始重新运行,可以为reverse即从结束开始向前重新运行。在android:repeatCount大于0或为infinite时生效
android:detachWallpaper 表示是否在壁纸上运行
android:zAdjustment 表示被animated的内容在运行时在z轴上的位置,默认为normal。
normal保持内容当前的z轴顺序
top运行时在最顶层显示
bottom运行时在最底层显示

b. 运行速度
运行速度为运行时间(android:ration)除以运行角度差(android:toDegrees-android:fromDegrees),比如android:ration为1000,android:toDegrees为360,android:fromDegrees为0就表示1秒转1圈。

c. 循环运行
Java代码
android:fromDegrees="0"
android:toDegrees="360"
android:repeatCount="-1"
android:repeatCount="-1"即表示循环运行,配合上android:fromDegrees="0" android:toDegrees="360"表示不间断

3、开始和停止旋转
在操作开始之前调用
Java代码
if (operatingAnim != null) {
infoOperatingIV.startAnimation(operatingAnim);
}
在操作完成时调用
Java代码
infoOperatingIV.clearAnimation();
许多朋友不知道如何停止旋转animation,所以强制设置rotate转动多少圈表示操作,但却无法与操作实际的进度匹配上,实际上只要如上代码所示清除animation即可。

阅读全文

与android圆形旋转菜单相关的资料

热点内容
找漫画看应该下载什么app 浏览:178
如何在vps上搭建自己的代理服务器 浏览:742
nginxphp端口 浏览:403
内脏pdf 浏览:150
怎么看云服务器架构 浏览:85
我的世界国际服为什么登不进服务器 浏览:996
微盟程序员老婆 浏览:930
intellij创建java 浏览:110
java连接odbc 浏览:38
启动修复无法修复电脑命令提示符 浏览:359
手机编程是什么 浏览:98
山东移动程序员 浏览:163
苏州java程序员培训学校 浏览:477
单片机液晶驱动 浏览:855
魔拆app里能拆到什么 浏览:131
新预算法的立法理念 浏览:144
wdcpphp的路径 浏览:134
单片机p0口电阻 浏览:926
浏览器中调短信文件夹 浏览:594
五菱宏光空调压缩机 浏览:69