当前位置: 首页 > news >正文

网站建设需要服务器么Django 个人博客网站开发

网站建设需要服务器么,Django 个人博客网站开发,施工企业招标领导小组组长的职责,一个平台网站开发支付宝上有一个咻一咻的功能,就是点击图片后四周有水波纹的这种效果,今天也写一个类似的功能。效果如下所示#xff1a;思路#xff1a;就是几个圆的半径不断在变大,这个可以使用动画缩放实现,还有透明动画还有就是这是好几个圆,然后执行的动画有个延迟效果,其实这些动画是放…支付宝上有一个咻一咻的功能,就是点击图片后四周有水波纹的这种效果,今天也写一个类似的功能。效果如下所示思路就是几个圆的半径不断在变大,这个可以使用动画缩放实现,还有透明动画还有就是这是好几个圆,然后执行的动画有个延迟效果,其实这些动画是放在一起执行的,熟悉属性动画的知道已经给我们提供了同步执行动画和顺序执行动画的实现api,也会会有人说这几个view就是在onDraw()方法中画几个圆,可能会说我还要继承容器view去onLayout()方法中这些子view添加在某个特定的区域,当然这也是可以的,其实简单的就是以图片为中心(图片imageview在父view的中心),然后画圆,指定每个字view的宽和高就行了,具体看代码package com.zhifubaoxiuyixiu.view;import android.animation.Animator;import android.animation.AnimatorSet;import android.animation.ObjectAnimator;import android.content.Context;import android.graphics.Color;import android.graphics.Paint;import android.util.AttributeSet;import android.view.Gravity;import android.view.View;import android.view.animation.AccelerateDecelerateInterpolator;import android.widget.FrameLayout;import java.util.ArrayList;/*** Created by admin on 2016/12/29.*/public class ZhifubaoFrameLayout extends FrameLayout {private int rippleColor Color.parseColor(#0099CC);//水波纹的颜色private int radius 0;//水波纹圆的半径private long anim_duration 3000;//动画执行的时间private int water_ripple_count 6;private int scale 6;//动画缩放比例private long animDelay;//动画延迟的时间private Paint paint;private AnimatorSet animatorSet;private ArrayList animatorList;private FrameLayout.LayoutParams rippleParams;private ArrayList rippleViewListnew ArrayList();private boolean isAnimRunning false;public ZhifubaoFrameLayout(Context context) {this(context,null);}public ZhifubaoFrameLayout(Context context, AttributeSet attrs) {this(context,attrs,0);}public ZhifubaoFrameLayout(Context context, AttributeSet attrs, int defStyleAttr) {super(context, attrs, defStyleAttr);initPaint();addChildView();initAnim();}/*** 初始化动画*/private void initAnim() {animatorSet new AnimatorSet();animatorSet.setInterpolator(new AccelerateDecelerateInterpolator());animatorListnew ArrayList();for(int i0;ifinal ObjectAnimator scaleXAnimator ObjectAnimator.ofFloat(rippleViewList.get(i), ScaleX, 1.0f, scale);scaleXAnimator.setRepeatCount(ObjectAnimator.INFINITE);scaleXAnimator.setRepeatMode(ObjectAnimator.RESTART);scaleXAnimator.setStartDelay(i * animDelay);scaleXAnimator.setDuration(anim_duration);animatorList.add(scaleXAnimator);final ObjectAnimator scaleYAnimator ObjectAnimator.ofFloat(rippleViewList.get(i), ScaleY, 1.0f, scale);scaleYAnimator.setRepeatCount(ObjectAnimator.INFINITE);scaleYAnimator.setRepeatMode(ObjectAnimator.RESTART);scaleYAnimator.setStartDelay(i * animDelay);scaleYAnimator.setDuration(anim_duration);animatorList.add(scaleYAnimator);final ObjectAnimator alphaAnimator ObjectAnimator.ofFloat(rippleViewList.get(i), Alpha, 1.0f, 0f);alphaAnimator.setRepeatCount(ObjectAnimator.INFINITE);alphaAnimator.setRepeatMode(ObjectAnimator.RESTART);alphaAnimator.setStartDelay(i * animDelay);alphaAnimator.setDuration(anim_duration);animatorList.add(alphaAnimator);}animatorSet.playTogether(animatorList);}/*** 添加水波纹子view*/private void addChildView() {radius 32;animDelay350;rippleParamsnew FrameLayout.LayoutParams((int)(2*(radius)),(int)(2*(radius)));rippleParams.gravity Gravity.CENTER;for(int i0;iWateRipple rippleViewnew WateRipple(getContext(),paint);addView(rippleView,rippleParams);rippleViewList.add(rippleView);}}/*** 初始化画笔*/private void initPaint() {paint new Paint();paint.setAntiAlias(true);paint.setColor(rippleColor);paint.setStyle(Paint.Style.FILL);}/*** 开启动画*/public void startRippleAnimation(){if(!isRunning()){for(WateRipple wateRipple:rippleViewList){wateRipple.setVisibility(VISIBLE);}animatorSet.start();isAnimRunningtrue;}}/*** 动画停止运行*/public void stopAnimation(){if(isRunning()){animatorSet.cancel();isAnimRunningfalse;}}/*** 判断是否动画在运行* return*/public boolean isRunning(){return isAnimRunning;}/*** ui不可见时关闭动画* param visibility*/Overrideprotected void onWindowVisibilityChanged(int visibility) {super.onWindowVisibilityChanged(visibility);if(visibilityView.INVISIBLE||visibility View.GONE){stopAnimation();}}}每个水波纹viewpackage com.zhifubaoxiuyixiu.view;import android.content.Context;import android.graphics.Canvas;import android.graphics.Paint;import android.view.View;/*** Created by admin on 2016/12/29.*/public class WateRipple extends View {private Paint mPaint;public WateRipple(Context context, Paint paint){super(context);if(paintnull){this.mPaint new Paint();}else{this.mPaint paint;}setVisibility(View.INVISIBLE);//刚开始设置不可见}public WateRipple(Context context) {super(context);}Overrideprotected void onDraw(Canvas canvas) {super.onDraw(canvas);int radius(Math.min(getWidth(),getHeight()))/2;canvas.drawCircle(radius,radius,radius,mPaint);}}圆形图片package com.zhifubaoxiuyixiu.view;import android.content.Context;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.graphics.BitmapShader;import android.graphics.Canvas;import android.graphics.Paint;import android.graphics.Shader;import android.graphics.drawable.ShapeDrawable;import android.graphics.drawable.shapes.OvalShape;import android.util.AttributeSet;import android.view.View;import com.zhifubaoxiuyixiu.R;/*** Created by admin on 2016/12/29.*/public class CircleView extends View {private BitmapShader bitmapShaderp ;private ShapeDrawable shapeDrawable;public CircleView(Context context) {this(context,null);}public CircleView(Context context, AttributeSet attrs) {this(context, attrs,0);}public CircleView(Context context, AttributeSet attrs, int defStyleAttr) {super(context, attrs, defStyleAttr);initBitmap();}private void initBitmap() {Bitmap bitmap BitmapFactory.decodeResource(getResources(), R.mipmap.grid);shapeDrawable new ShapeDrawable(new OvalShape());bitmapShaderp new BitmapShader(bitmap, Shader.TileMode.CLAMP,Shader.TileMode.CLAMP);shapeDrawable.getPaint().setShader(bitmapShaderp);}Overrideprotected void onDraw(Canvas canvas) {super.onDraw(canvas);shapeDrawable.setBounds(0,0,getWidth(),getHeight());shapeDrawable.draw(canvas);}}布局文件xmlns:androidhttp://schemas.android.com/apk/res/androidandroid:layout_widthmatch_parentandroid:layout_heightmatch_parentandroid:layout_widthmatch_parentandroid:layout_heightmatch_parentandroid:idid/rootandroid:layout_width64dpandroid:layout_height64dpandroid:layout_centerInParenttrueandroid:idid/imageViewandroid:layout_gravitycenterandroid:srcmipmap/grid/使用package com.zhifubaoxiuyixiu;import android.app.Activity;import android.os.Bundle;import android.view.View;import com.zhifubaoxiuyixiu.view.CircleView;import com.zhifubaoxiuyixiu.view.ZhifubaoFrameLayout;public class MainActivity extends Activity {private CircleView imageView;Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);imageView (CircleView) findViewById(R.id.imageView);final ZhifubaoFrameLayout root (ZhifubaoFrameLayout) findViewById(R.id.root);imageView.setOnClickListener(new View.OnClickListener() {Overridepublic void onClick(View view) {root.startRippleAnimation();}});}}以上所述是小编给大家介绍的Android 自定义view仿支付宝咻一咻功能希望对大家有所帮助如果大家有任何疑问请给我留言小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持
http://www.huolong8.cn/news/464931/

相关文章:

  • 2017网站趋势qq推广工具
  • 电子商务网站建设方式做公众好号的网站
  • 网站建设一般收多少定金支持采集wordpress附件上传
  • 网站建设z济南建设工程交易中心
  • 网站 错误代码wordpress缩略图不清晰怎么办
  • 专业格泰建站云南网直播
  • 送网站建设管理信息内容审核制度wordpress 自动登录
  • 做长尾词优化去哪些网站视频网站开发php
  • 电子商务网站建设的流程优化大师有用吗
  • 网站城市分站是怎么做的燕郊做网站
  • 岳阳市住房和城乡建设路网站做网站的数据库
  • 电子外贸网站建设做企业竞争模拟的网站
  • 多钱网网站餐馆效果图网站
  • 呼和浩特市网站建设公司wordpress文章图片怎么并排
  • 学校网站建设与维护网站标ico怎么做
  • 重庆平台网站建设费用如何制作网站要钱吗
  • 如何查询网站是否备案手机优化怎么解除
  • 电商网站 知名案例学校响应式网站模板
  • 临清做网站足球推介网
  • 建设征婚网站wordpress 登录集成
  • 对网站建设 意见和建议什么专业会做网站
  • 济南网站推广优化如何制作好自己的网站
  • 腾讯云免费建站有哪些可以在线做海报的网站
  • 购物网站服务中心wordpress图床插件
  • 广西省建设注册管理网站北京企业网站设计报价
  • 如何将数据写入wordpress文站重庆网站建设的价格低
  • 中国第四冶金建设有限公司官方网站工商注册网上办事大厅
  • 网站开发常用js函数服装设计有前途吗
  • 苏州网站建设狮山路西安浐灞生态区规划建设局网站
  • 适合用dedecms做的网站广州网站优化费用