本文整理汇总了Java中android.animation.FloatEvaluator类的典型用法代码示例。如果您正苦于以下问题:Java FloatEvaluator类的具体用法?Java FloatEvaluator怎么用?Java FloatEvaluator使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
FloatEvaluator类属于android.animation包,在下文中一共展示了FloatEvaluator类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。
示例1: initViews
import android.animation.FloatEvaluator; //导入依赖的package包/类
private void initViews(View recordView) {
chronometer = recordView.findViewById(R.id.chronometer);
audioVisualization = recordView.findViewById(R.id.visualizer_view);
mSettingsButton = recordView.findViewById(R.id.settings_btn);
mPlayListBtn = recordView.findViewById(R.id.play_list_btn);
mRecordButton = recordView.findViewById(R.id.btnRecord);
mPauseButton = recordView.findViewById(R.id.btnPause);
mPauseButton.setVisibility(View.GONE); //hide pause button before recording starts
alphaAnimator =
ObjectAnimator.ofObject(chronometer, "alpha", new FloatEvaluator(), 0.2f);
alphaAnimator.setRepeatMode(ValueAnimator.REVERSE);
alphaAnimator.setRepeatCount(ValueAnimator.INFINITE);
audioRecordPresenter.onViewInitialised();
}
开发者ID:Arjun-sna,项目名称:Android-AudioRecorder-App,代码行数:18,代码来源:RecordFragment.java
示例2: unlockAnim
import android.animation.FloatEvaluator; //导入依赖的package包/类
private void unlockAnim() {
final ObjectAnimator alphaAnimator = ObjectAnimator.ofFloat(mUnlockIcon, View.ALPHA, 0.2f, 1, 1);
alphaAnimator.setRepeatCount(ValueAnimator.INFINITE);
alphaAnimator.setRepeatMode(ValueAnimator.REVERSE);
alphaAnimator.setEvaluator(new FloatEvaluator());
alphaAnimator.setDuration(1500);
alphaAnimator.start();
if (mRollingAnim == null) {
mRollingAnim = new TranslateAnimation(Animation.RELATIVE_TO_SELF, 0,
Animation.RELATIVE_TO_SELF, 0, Animation.RELATIVE_TO_SELF,
0, Animation.RELATIVE_TO_SELF, -0.3f);
mRollingAnim.setRepeatCount(Animation.INFINITE);
mRollingAnim.setRepeatMode(Animation.REVERSE);
mRollingAnim.setDuration(1500);
}
mUnlockIcon.startAnimation(mRollingAnim);
}
开发者ID:KyleCe,项目名称:ScreenLocker2,代码行数:20,代码来源:LockView.java
示例3: setUp
import android.animation.FloatEvaluator; //导入依赖的package包/类
private void setUp(final ScrollingBackgroundView view, final int step, final float speed) {
view.postOnAnimation(new Runnable() {
@Override
public void run() {
final ValueAnimator animator = ValueAnimator.ofFloat(.0F, 1.F);
animator.setEvaluator(new FloatEvaluator());
animator.setDuration(400L);
animator.setRepeatMode(ValueAnimator.RESTART);
animator.setRepeatCount(ValueAnimator.INFINITE);
animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator animation) {
view.scrollBy(
(int) (step * speed + .5F),
0
);
}
});
animator.start();
}
});
}
开发者ID:noties,项目名称:ScrollingBackgroundView,代码行数:23,代码来源:ParallaxFragment.java
示例4: animate
import android.animation.FloatEvaluator; //导入依赖的package包/类
private void animate() {
if (mValueAnimator == null
|| !mValueAnimator.isRunning()) {
final ScrollingBackgroundView backgroundView = scrollingBackgroundView();
mValueAnimator = ValueAnimator.ofFloat(.0F, 1.F);
mValueAnimator.setRepeatCount(ValueAnimator.INFINITE);
mValueAnimator.setRepeatMode(ValueAnimator.RESTART);
mValueAnimator.setEvaluator(new FloatEvaluator());
mValueAnimator.setInterpolator(new LinearInterpolator());
mValueAnimator.setDuration(400L);
mValueAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator animation) {
final int x = (int) (mHorizontalStep * mSpeed + .5F);
final int y = (int) (mVerticalStep * mSpeed + .5F);
backgroundView.scrollBy(x, y);
mShipView.setRotation(shipRotation(x, y));
}
});
mValueAnimator.start();
}
}
开发者ID:noties,项目名称:ScrollingBackgroundView,代码行数:26,代码来源:SpaceExplorerFragment.java
示例5: setFlingScale
import android.animation.FloatEvaluator; //导入依赖的package包/类
private void setFlingScale(float scale) {
if (mFlingScale != scale) {
if (BuildConfig.DEBUG) {
if (mBackgroundAnimator != null) {
mBackgroundAnimator.cancel();
}
mBackgroundAnimator = ValueAnimator.ofObject(new FloatEvaluator(), mFlingScale, scale);
mBackgroundAnimator.setDuration(BACKGROUND_COLOR_TRANSITION_MILLIS);
mBackgroundAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator animator) {
mFlingScale = (float) animator.getAnimatedValue();
int newColor = (int) mArgbEvaluator.evaluate(mFlingScale, IDLE_BACKGROUND_COLOR, FLING_BACKGROUND_COLOR);
setBackgroundColor(newColor);
}
});
mBackgroundAnimator.start();
}
}
}
开发者ID:oriley-me,项目名称:crate,代码行数:22,代码来源:CrateRecyclerView.java
示例6: reset
import android.animation.FloatEvaluator; //导入依赖的package包/类
public void reset() {
final PointF tempDragPoint = new PointF(mDragPoint.x, mDragPoint.y);
if (tempDragPoint.x == mOriginPoint.x && tempDragPoint.y == mOriginPoint.y) {
return;
}
final FloatEvaluator evaluator = new FloatEvaluator();
mAnimator = ValueAnimator.ofFloat(1.0f);
mAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator mAnim) {
float percent = mAnim.getAnimatedFraction();
updateDragPoint(evaluator.evaluate(percent, tempDragPoint.x, mOriginPoint.x),
evaluator.evaluate(percent, tempDragPoint.y, mOriginPoint.y));
}
});
mAnimator.addListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
clearAnimation();//结束时清除动画
ViewGroup rootView = (ViewGroup) BadgeView.this.getParent();
if (rootView != null) {
rootView.removeView(BadgeView.this);
DragBadgeView.this.setVisibility(VISIBLE);
}
recycleCacheBitmap();
}
});
mAnimator.setInterpolator(new OvershootInterpolator());
mAnimator.setDuration(500);
mAnimator.start();
}
开发者ID:fendoudebb,项目名称:DragBadgeView,代码行数:33,代码来源:DragBadgeView.java
示例7: LQRRefreshButton
import android.animation.FloatEvaluator; //导入依赖的package包/类
public LQRRefreshButton(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
// 获取自定义属性值
TypedArray ta = context.obtainStyledAttributes(attrs, R.styleable.LQRRefreshButton);
borderColor = ta.getColor(R.styleable.LQRRefreshButton_refresh_btn_borderColor, Color.parseColor("#fb7299"));
borderWidth = ta.getDimension(R.styleable.LQRRefreshButton_refresh_btn_borderWidth, dipToPx(0));
borderRadius = ta.getDimension(R.styleable.LQRRefreshButton_refresh_btn_borderRadius, dipToPx(60));
text = ta.getString(R.styleable.LQRRefreshButton_refresh_btn_text);
if (text == null)
text = "";
textColor = ta.getColor(R.styleable.LQRRefreshButton_refresh_btn_textColor, Color.parseColor("#fb7299"));
textSize = ta.getDimension(R.styleable.LQRRefreshButton_refresh_btn_textSize, spToPx(14));
iconSrc = ta.getResourceId(R.styleable.LQRRefreshButton_refresh_btn_iconSrc, R.mipmap.tag_center_refresh_icon);
iconSize = ta.getDimension(R.styleable.LQRRefreshButton_refresh_btn_iconSize, dipToPx(14));
space4TextAndIcon = ta.getDimension(R.styleable.LQRRefreshButton_refresh_btn_space4TextAndIcon, dipToPx(10));
ta.recycle();
// icon
iconBitmap = BitmapFactory.decodeResource(getResources(), iconSrc);
iconBitmap = zoomImg(iconBitmap, iconSize, iconSize);
// 旋转动画
mAnimator = ObjectAnimator.ofObject(this, "degress", new FloatEvaluator(), 360, 0);
mAnimator.setDuration(2000);
mAnimator.setRepeatMode(ObjectAnimator.RESTART);
mAnimator.setInterpolator(new LinearInterpolator());
mAnimator.setRepeatCount(ObjectAnimator.INFINITE);
}
开发者ID:GitLqr,项目名称:LQRBiliBlili,代码行数:31,代码来源:LQRRefreshButton.java
示例8: createGreatSmile
import android.animation.FloatEvaluator; //导入依赖的package包/类
private void createGreatSmile() {
float div = 0.10f;
FloatEvaluator f = new FloatEvaluator();
createSmile(new Point(mCenterSmile, mCenterY),
new Point(f.evaluate(div, mCenterSmile * 0.295, mCenterSmile), f.evaluate(div, mCenterY - (mCenterSmile * 0.23), mCenterY)), // Top control
new Point(f.evaluate(div, mCenterSmile * 0.295, mCenterSmile), f.evaluate(div, mCenterY - (mCenterSmile * 0.088), mCenterY)), // Bottom control
new Point(f.evaluate(div, mCenterSmile * 0.591, mCenterSmile), f.evaluate(div, mCenterY - (mCenterSmile * 0.23), mCenterY)), // Top Point
new Point(f.evaluate(div, mCenterSmile * 0.591, mCenterSmile), f.evaluate(div, mCenterY + (mCenterSmile * 0.118), mCenterY)), // Bottom point
Smile.MIRROR, GREAT, -1f, -1f, -1f);
}
开发者ID:sujithkanna,项目名称:SmileyRating,代码行数:11,代码来源:BaseRating.java
示例9: createGoodSmile
import android.animation.FloatEvaluator; //导入依赖的package包/类
private void createGoodSmile() {
float div = 0.20f;
FloatEvaluator f = new FloatEvaluator();
createSmile(new Point(mCenterSmile, mCenterY),
new Point(f.evaluate(div, mCenterSmile * 0.414, mCenterSmile), f.evaluate(div, mCenterY - (mCenterSmile * 0.24), mCenterY)), // Top control
new Point(f.evaluate(div, mCenterSmile * 0.355, mCenterSmile), f.evaluate(div, mCenterY - (mCenterSmile * 0.029), mCenterY)), // Bottom control
new Point(f.evaluate(div, mCenterSmile * 0.65, mCenterSmile), f.evaluate(div, mCenterY - (mCenterSmile * 0.118), mCenterY)), // Top Point
new Point(f.evaluate(div, mCenterSmile * 0.591, mCenterSmile), f.evaluate(div, mCenterY + (mCenterSmile * 0.118), mCenterY)), // Bottom point
Smile.MIRROR, GOOD, -1f, -1f, -1f);
}
开发者ID:sujithkanna,项目名称:SmileyRating,代码行数:11,代码来源:BaseRating.java
示例10: createBadSmile
import android.animation.FloatEvaluator; //导入依赖的package包/类
private void createBadSmile() {
float div = 0.20f;
FloatEvaluator f = new FloatEvaluator();
createSmile(new Point(mCenterSmile, mCenterY),
new Point(f.evaluate(div, mCenterSmile * 0.414, mCenterSmile), f.evaluate(div, mCenterY - (mCenterSmile * 0.24), mCenterY)), // Top control
new Point(f.evaluate(div, mCenterSmile * 0.355, mCenterSmile), f.evaluate(div, mCenterY - (mCenterSmile * 0.029), mCenterY)), // Bottom control
new Point(f.evaluate(div, mCenterSmile * 0.65, mCenterSmile), f.evaluate(div, mCenterY - (mCenterSmile * 0.118), mCenterY)), // Top Point
new Point(f.evaluate(div, mCenterSmile * 0.591, mCenterSmile), f.evaluate(div, mCenterY + (mCenterSmile * 0.118), mCenterY)), // Bottom point
Smile.MIRROR_INVERSE, BAD, -1f, -1f, -1f);
}
开发者ID:sujithkanna,项目名称:SmileyRating,代码行数:11,代码来源:BaseRating.java
示例11: createTerribleSmile
import android.animation.FloatEvaluator; //导入依赖的package包/类
private void createTerribleSmile() {
float div = 0.20f;
FloatEvaluator f = new FloatEvaluator();
createSmile(new Point(mCenterSmile, mCenterY),
new Point(f.evaluate(div, mCenterSmile * 0.414, mCenterSmile), f.evaluate(div, mCenterY - (mCenterSmile * 0.24), mCenterY)), // Top control
new Point(f.evaluate(div, mCenterSmile * 0.355, mCenterSmile), f.evaluate(div, mCenterY - (mCenterSmile * 0.029), mCenterY)), // Bottom control
new Point(f.evaluate(div, mCenterSmile * 0.65, mCenterSmile), f.evaluate(div, mCenterY - (mCenterSmile * 0.118), mCenterY)), // Top Point
new Point(f.evaluate(div, mCenterSmile * 0.591, mCenterSmile), f.evaluate(div, mCenterY + (mCenterSmile * 0.118), mCenterY)), // Bottom point
Smile.MIRROR_INVERSE, TERRIBLE, -1f, -1f, -1f);
}
开发者ID:sujithkanna,项目名称:SmileyRating,代码行数:11,代码来源:BaseRating.java
示例12: getAccelerateAnimator
import android.animation.FloatEvaluator; //导入依赖的package包/类
private ValueAnimator getAccelerateAnimator() {
if (mAccelerateAnimator != null) return mAccelerateAnimator;
mAccelerateAnimator = ValueAnimator.ofFloat(mFlushRate, FLUSH_RATE_LIMITATION);
mAccelerateAnimator.setEvaluator(new FloatEvaluator());
mAccelerateAnimator.setInterpolator(new DecelerateInterpolator());
mAccelerateAnimator.setDuration(1000);
mAccelerateAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator animation) {
mFlushRate = ((Float) animation.getAnimatedValue()).intValue();
}
});
return mAccelerateAnimator;
}
开发者ID:hsj-xiaokang,项目名称:OSchina_resources_android,代码行数:15,代码来源:SolarSystemView.java
示例13: getDecelerateAnimator
import android.animation.FloatEvaluator; //导入依赖的package包/类
private ValueAnimator getDecelerateAnimator() {
if (mDecelerateAnimator != null) return mDecelerateAnimator;
mDecelerateAnimator = ValueAnimator.ofFloat(mFlushRate, FLUSH_RATE);
mDecelerateAnimator.setEvaluator(new FloatEvaluator());
mDecelerateAnimator.setInterpolator(new AccelerateInterpolator());
mDecelerateAnimator.setDuration(1000);
mDecelerateAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator animation) {
mFlushRate = ((Float) animation.getAnimatedValue()).intValue();
}
});
return mDecelerateAnimator;
}
开发者ID:hsj-xiaokang,项目名称:OSchina_resources_android,代码行数:15,代码来源:SolarSystemView.java
示例14: createSmallWawe
import android.animation.FloatEvaluator; //导入依赖的package包/类
private void createSmallWawe(float centerX, float centerY) {
float fraction = 0.2f;
FloatEvaluator evaluator = new FloatEvaluator();
Point rightControll = new Point(evaluator.evaluate(fraction, centerX, centerX * 1.45), centerY);
Point rightPoint = new Point(evaluator.evaluate(fraction, centerX * 0.95, centerX), evaluator.evaluate(fraction, centerY * 0.35 * 1.5, centerY));
Wawe wawe = createWawe(
rightControll, //right controll
new Point(rightControll.x - gap * 0.45f, centerY), //left controll
rightPoint, //right point
new Point(rightPoint.x - gap * 0.7f, rightPoint.y), //left point
new Point(rightPoint.x - gap * 0.4f, rightPoint.y - gap * 0.6f), //top right controll
new Point(rightPoint.x - gap * 0.9f, rightPoint.y - gap * 0.4f) //top left controll
);
wawes.put(0, wawe);
}
开发者ID:shellljx,项目名称:FuckingVolumeSlider,代码行数:16,代码来源:Speaker.java
示例15: createBigWawe
import android.animation.FloatEvaluator; //导入依赖的package包/类
private void createBigWawe(float centerX, float centerY) {
float fraction = 0.2f;
FloatEvaluator evaluator = new FloatEvaluator();
Point rightControll = new Point(evaluator.evaluate(fraction, centerX, centerX * 1.45), centerY);
Point rightPoint = new Point(evaluator.evaluate(fraction, centerX * 0.95, centerX), evaluator.evaluate(fraction, centerY * 0.35, centerY));
Wawe wawe = createWawe(
rightControll, //right controll
new Point(rightControll.x - gap * 0.45f, centerY), //left controll
rightPoint, //right point
new Point(rightPoint.x - gap * 0.7f, rightPoint.y), //left point
new Point(rightPoint.x - gap * 0.4f, rightPoint.y - gap * 0.6f), //top right controll
new Point(rightPoint.x - gap * 0.9f, rightPoint.y - gap * 0.4f) //top left controll
);
wawes.put(1, wawe);
}
开发者ID:shellljx,项目名称:FuckingVolumeSlider,代码行数:16,代码来源:Speaker.java
示例16: batteryChargingAnim
import android.animation.FloatEvaluator; //导入依赖的package包/类
public void batteryChargingAnim() {
if (PhoneStateHelper.isPowerConnected(mContext)) {
final ObjectAnimator alphaAnimation = ObjectAnimator.ofFloat(mBatteryCharging, View.ALPHA, 0.2f, 1, 1);
alphaAnimation.setRepeatCount(ValueAnimator.INFINITE);
alphaAnimation.setRepeatMode(ValueAnimator.REVERSE);
alphaAnimation.setEvaluator(new FloatEvaluator());
alphaAnimation.setDuration(1500);
alphaAnimation.start();
ViewU.show(mBatteryCharging);
} else {
ViewU.hide(mBatteryCharging);
cancelAnimation(mBatteryCharging);
}
}
开发者ID:KyleCe,项目名称:ScreenLocker2,代码行数:15,代码来源:LockView.java
示例17: ofFloat
import android.animation.FloatEvaluator; //导入依赖的package包/类
public static ViewPagerAnimator<Number> ofFloat(ViewPager viewPager, Provider<Number> provider, Property<Number> property) {
final FloatEvaluator evaluator = new FloatEvaluator();
final Interpolator interpolator = new LinearInterpolator();
return ofFloat(viewPager, provider, property, evaluator, interpolator);
}
开发者ID:StylingAndroid,项目名称:ViewPagerAnimator,代码行数:7,代码来源:ViewPagerAnimator.java
示例18: toAlphaOne
import android.animation.FloatEvaluator; //导入依赖的package包/类
public static ObjectAnimator toAlphaOne(View view, int duration) {
ObjectAnimator objectAnimator = ObjectAnimator.ofObject(view, "alpha", new FloatEvaluator(), 0.0f, 1.0f);
objectAnimator.setDuration(duration);
return objectAnimator;
}
开发者ID:panshen,项目名称:PopupCircleMenu,代码行数:6,代码来源:AnimUtil.java
示例19: toAlphaZero
import android.animation.FloatEvaluator; //导入依赖的package包/类
public static ObjectAnimator toAlphaZero(View view, int duration) {
ObjectAnimator objectAnimator = ObjectAnimator.ofObject(view, "alpha", new FloatEvaluator(), 1.0f, 0f);
objectAnimator.setDuration(duration);
return objectAnimator;
}
开发者ID:panshen,项目名称:PopupCircleMenu,代码行数:6,代码来源:AnimUtil.java
示例20: transformSmile
import android.animation.FloatEvaluator; //导入依赖的package包/类
protected Path transformSmile(float trans, float fraction, Path path, Smile s1, Smile s2, FloatEvaluator evaluator) {
path.reset();
path.moveTo(
evaluator.evaluate(fraction, s1.START_POINT.x, s2.START_POINT.x) + trans,
evaluator.evaluate(fraction, s1.START_POINT.y, s2.START_POINT.y)
);
path.cubicTo(
evaluator.evaluate(fraction, s1.TOP_CURVE[0].x, s2.TOP_CURVE[0].x) + trans,
evaluator.evaluate(fraction, s1.TOP_CURVE[0].y, s2.TOP_CURVE[0].y),
evaluator.evaluate(fraction, s1.TOP_CURVE[1].x, s2.TOP_CURVE[1].x) + trans,
evaluator.evaluate(fraction, s1.TOP_CURVE[1].y, s2.TOP_CURVE[1].y),
evaluator.evaluate(fraction, s1.TOP_CURVE[2].x, s2.TOP_CURVE[2].x) + trans,
evaluator.evaluate(fraction, s1.TOP_CURVE[2].y, s2.TOP_CURVE[2].y)
);
path.cubicTo(
evaluator.evaluate(fraction, s1.RIGHT_CURVE[0].x, s2.RIGHT_CURVE[0].x) + trans,
evaluator.evaluate(fraction, s1.RIGHT_CURVE[0].y, s2.RIGHT_CURVE[0].y),
evaluator.evaluate(fraction, s1.RIGHT_CURVE[1].x, s2.RIGHT_CURVE[1].x) + trans,
evaluator.evaluate(fraction, s1.RIGHT_CURVE[1].y, s2.RIGHT_CURVE[1].y),
evaluator.evaluate(fraction, s1.RIGHT_CURVE[2].x, s2.RIGHT_CURVE[2].x) + trans,
evaluator.evaluate(fraction, s1.RIGHT_CURVE[2].y, s2.RIGHT_CURVE[2].y)
);
path.cubicTo(
evaluator.evaluate(fraction, s1.BOTTOM_CURVE[0].x, s2.BOTTOM_CURVE[0].x) + trans,
evaluator.evaluate(fraction, s1.BOTTOM_CURVE[0].y, s2.BOTTOM_CURVE[0].y),
evaluator.evaluate(fraction, s1.BOTTOM_CURVE[1].x, s2.BOTTOM_CURVE[1].x) + trans,
evaluator.evaluate(fraction, s1.BOTTOM_CURVE[1].y, s2.BOTTOM_CURVE[1].y),
evaluator.evaluate(fraction, s1.BOTTOM_CURVE[2].x, s2.BOTTOM_CURVE[2].x) + trans,
evaluator.evaluate(fraction, s1.BOTTOM_CURVE[2].y, s2.BOTTOM_CURVE[2].y)
);
path.cubicTo(
evaluator.evaluate(fraction, s1.LEFT_CURVE[0].x, s2.LEFT_CURVE[0].x) + trans,
evaluator.evaluate(fraction, s1.LEFT_CURVE[0].y, s2.LEFT_CURVE[0].y),
evaluator.evaluate(fraction, s1.LEFT_CURVE[1].x, s2.LEFT_CURVE[1].x) + trans,
evaluator.evaluate(fraction, s1.LEFT_CURVE[1].y, s2.LEFT_CURVE[1].y),
evaluator.evaluate(fraction, s1.LEFT_CURVE[2].x, s2.LEFT_CURVE[2].x) + trans,
evaluator.evaluate(fraction, s1.LEFT_CURVE[2].y, s2.LEFT_CURVE[2].y)
);
path.close();
return path;
}
开发者ID:sujithkanna,项目名称:SmileyRating,代码行数:42,代码来源:BaseRating.java
注:本文中的android.animation.FloatEvaluator类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论