您的位置:首页 > 其它

Launcher定制之 应用分发--高仿APUS桌面,上拉加载应用分发雷达效果

2015-06-08 18:57 507 查看
直接上代码,

需要图片资源请到APUS里面去提取。

xml:

<?xml version="1.0" encoding="utf-8"?>
<merge android:layout_width="fill_parent" android:layout_height="100.0dip"
xmlns:android="http://schemas.android.com/apk/res/android">
<TextView
android:textSize="16.0sp"
android:textColor="#ffffffff"
android:gravity="bottom|center"
android:id="@+id/intro"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:minHeight="40.0dip"
android:text="加载更多" android:singleLine="false" />
<FrameLayout
android:layout_gravity="bottom|center"
android:id="@+id/anim_view"
android:clipChildren="true"
android:layout_width="fill_parent"
android:layout_height="100.0dip">
<ImageView
android:layout_gravity="top|center"
android:id="@+id/scan_meter"
android:layout_width="210.0dip"
android:layout_height="210.0dip"
android:layout_marginTop="-5.0dip"
android:src="@drawable/folder_radar_center_meter"
android:scaleType="fitXY"
android:contentDescription="nil" />
<ImageView
android:layout_gravity="bottom|center"
android:id="@+id/scan_indicator"
android:layout_width="146.0dip"
android:layout_height="73.0dip"
android:src="@drawable/radar_scan_indicator"
android:scaleType="fitXY"
android:contentDescription="nil" />
</FrameLayout>
</merge>


package com.xyz.workspace;

import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;
import android.animation.ValueAnimator;
import android.content.Context;
import android.util.AttributeSet;
import android.view.View;
import android.view.animation.LinearInterpolator;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.TextView;

public class PromotionLoadingFooter extends FrameLayout {
public PromotionLoadingFooter(Context context) {
super(context);
// TODO Auto-generated constructor stub
init();
}

public PromotionLoadingFooter(Context context, AttributeSet attrs) {
super(context, attrs);
init();
}

ValueAnimator valueAnimator;
View anim_view = null;
ImageView scan_meter = null;
ImageView scan_indicator = null;
TextView intro;

private void init() {
inflate(getContext(), R.layout.folder_promotion_loading_footer, this);
anim_view = findViewById(R.id.anim_view);
scan_meter = ((ImageView) findViewById(R.id.scan_meter));
scan_indicator = ((ImageView) findViewById(R.id.scan_indicator));
intro = ((TextView) findViewById(R.id.intro));

}

public void startAnima(){

anim_view.clearAnimation();
scan_meter.clearAnimation();
scan_indicator.clearAnimation();
intro.clearAnimation();

valueAnimator= ValueAnimator.ofFloat(new float[] { 0.0F, 1.0F });
valueAnimator.setDuration(1200L);
valueAnimator.setInterpolator(new LinearInterpolator());
valueAnimator.setRepeatCount(6);
valueAnimator.setRepeatMode(1);
AnimatorListenerAdapter local1 = new AnimatorListenerAdapter() {
public void onAnimationEnd(Animator paramAnimator) {

}

public void onAnimationRepeat(Animator paramAnimator) {

}

public void onAnimationStart(Animator paramAnimator) {
scan_meter.setPivotX(scan_meter.getWidth() / 2);
scan_meter.setPivotY(scan_meter.getHeight());
scan_indicator.setPivotX(scan_indicator.getWidth() / 2);
scan_indicator.setPivotY(scan_indicator.getHeight());
}
};
ValueAnimator.AnimatorUpdateListener local2 = new ValueAnimator.AnimatorUpdateListener() {
public void onAnimationUpdate(ValueAnimator paramValueAnimator) {
float f = ((Float) paramValueAnimator.getAnimatedValue())
.floatValue();
scan_indicator.setRotation(f * 360.0F);
}
};
valueAnimator.addListener(local1);
valueAnimator.addUpdateListener(local2);

intro.setVisibility(View.GONE);

valueAnimator.start();
}

}


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: