简介 目录 评价 推荐
  • 慕无忌9063056 2020-10-25
    控制点怎么确定
    0回答·615浏览
  • weixin_慕尼黑8068974 2020-05-28
    粘性效果 不能变换颜色问题

    是可以设置颜色的,但是没有细说这个问题,自己想一下吧

    1回答·613浏览
  • 华园企程王众 2020-05-22
    请问老师,想学好Android开发,需要掌握数学里哪些知识点?
    0回答·565浏览
  • qq_精慕门2073387 2019-10-31
    二阶曲线有个问题

    不是的,是要按加的增,

    1回答·799浏览
  • 慕尼黑9152544 2019-04-17
    你在这一章中用到的滑图软件是什么?
    0回答·959浏览
  • 愚妄i 2018-07-10
    拉不动怎么办
    //下拉View
    public class PullDownView extends View {
    
        private float mProgress;
        Paint mCirclePaint;
        private int mCircleRadius = 150;
        private int mCircleRadiuX, mCircleRadiuY;
    
        //可拖动的高度
        private int mDragHeight = 800;
    
        public PullDownView(Context context) {
            super(context);
            init();
        }
    
        public PullDownView(Context context, @Nullable AttributeSet attrs) {
            super(context, attrs);
            init();
        }
    
        public PullDownView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
            super(context, attrs, defStyleAttr);
            init();
        }
        @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
        public PullDownView(Context context, @Nullable AttributeSet attrs, int defStyleAttr, int defStyleRes) {
            super(context, attrs, defStyleAttr, defStyleRes);
        }
    
        private void init() {
    
            Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
            //设置抗锯齿
            paint.setAntiAlias(true);
            //设置防抖
            paint.setDither(true);
            //设置填充方式
            paint.setStyle(Paint.Style.FILL);
            paint.setColor(0xff000000);
            mCirclePaint = paint;
        }
    
        @Override
        protected void onDraw(Canvas canvas) {
            super.onDraw(canvas);
    
            canvas.drawCircle(mCircleRadiuX, mCircleRadiuY, mCircleRadius, mCirclePaint);
        }
    
        @Override
        protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
    //        super.onMeasure(widthMeasureSpec, heightMeasureSpec);
            int widthMode = MeasureSpec.getMode(widthMeasureSpec);
            int width = MeasureSpec.getSize(widthMeasureSpec);
    
            int heightMode = MeasureSpec.getMode(heightMeasureSpec);
            int height = MeasureSpec.getSize(heightMeasureSpec);
    
            int minWidth = 2*mCircleRadius+getPaddingLeft()+getPaddingRight();
            int minHeight = (int) ((mDragHeight*mProgress +0.5f)+getPaddingTop()+getPaddingBottom());
    
            int measureWidth, measureHeight;
    
            if (widthMode == MeasureSpec.EXACTLY){
                //确定的值
                measureWidth = width;
            } else if (widthMode == MeasureSpec.AT_MOST){
                //最多的值
                measureWidth = Math.min(minWidth, width);
            } else {
                measureWidth = minWidth;
            }
    
            if (heightMode == MeasureSpec.EXACTLY){
                //确定的值
                measureHeight = height;
            } else if (heightMode == MeasureSpec.AT_MOST){
                //最多的值
                measureHeight = Math.min(minHeight, height);
            } else {
                measureHeight = minHeight;
            }
            //设置宽高
            setMeasuredDimension(measureWidth, measureHeight);
    
        }
    
        @Override
        protected void onSizeChanged(int w, int h, int oldw, int oldh) {
            super.onSizeChanged(w, h, oldw, oldh);
            mCircleRadiuX = getWidth()>>1;
            mCircleRadiuY = getHeight()>>1;
        }
    
        /**
         * 设置拖动进度
         * @param progress
         */
        public void setProgress(float progress){
            Log.e("TAG", "p"+progress);
            mProgress = progress;
            requestLayout();
        }
    }
    
    //RelativeLayout下拉监听
    final PullDownView pullDownView = findViewById(R.id.pulldown);
    
    findViewById(R.id.activity_main).setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View view, MotionEvent motionEvent) {
            int action = motionEvent.getAction();
            switch (action){
                case MotionEvent.ACTION_DOWN:
                    mTouchMoveStartY = motionEvent.getY();
                    return true;
                case MotionEvent.ACTION_MOVE:
                    float y = motionEvent.getY();
                    if (y>=mTouchMoveStartY){
                        float moveSize = y - mTouchMoveStartY;
                        float progress = moveSize>= TOUCH_MOVE_MAX_Y? 1: moveSize/TOUCH_MOVE_MAX_Y;
                        pullDownView.setProgress(progress);
                    }
                    return true;
                case MotionEvent.ACTION_UP:
                    break;
            }
    
            return false;
        }
    });
    
    //Xml
    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:top="http://schemas.android.com/apk/res-auto"
        android:id="@+id/activity_main"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="#fff">
    
        <com.summer.h5.View.PullDownView
            android:id="@+id/pulldown"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"/>
    
    </RelativeLayout>


    2回答·1376浏览
  • Alex6 2018-05-01
    不能实时画

    发现问题了,原来是没有添加线程

    1回答·1265浏览
  • 有种放学别跑 2018-03-23
    设置iHeight最小值 是怎么肥事

    这个只是为了四舍五入而已,比如mDragHeight * progress = 1.5f时,当没有加上0.5f时,转int时就为1,当加上0.5f时,就为2.0f转int时就为2,满足四舍五入了

    1回答·1251浏览
  • 慕无忌3143822 2017-12-16
    TouchPullView中初始化方法上面super还是标红

    可能是你的版本设置的太低了

    1回答·1335浏览
  • 慕丝730910 2017-12-13
    老师给一份Dome吗
    1回答·1206浏览
  • Atlas_Kevin 2017-11-06
    TouchpullView后面怎么个个函数

    光标移动到红线处 按住ALT+Enter提示 就会出来教程里面的选择第一个constructor那个 就会出来选择构造方法的界面

    1回答·1255浏览
  • 萌萌的笨笨4283846 2017-11-01
    为什么我圆点开始显示出来了。。

    我也是这样的 拉动后没反应

    2回答·1393浏览
  • qq_小红帽_16 2017-10-25
    老师,写TouchPullView的时候用了什么快捷键吗

    是代码块吧,,

    1回答·696浏览
  • qq_小红帽_16 2017-10-25
    老师,写TouchPullView的时候用了什么快捷键吗

    这个是可以设置代码块弄的吧

    1回答·757浏览
  • 慕标600203 2017-09-15
    来这是释放动画的方法
    1回答·1396浏览
  • 慕标600203 2017-09-15
    其中release()方法要放在MainActivity中的MotionEvent.ACTION_MOVE:中​ 代码如下:

    放在MotionEvent.ACTION_UP中

    1回答·1274浏览
  • 阿钟程序猿 2017-09-13
    没有课程源码地址吗
    0回答·950浏览
  • 掌控代码 2017-08-15
    请问公式里面的这个T代表的是什么?

    通常会把参数t当作时间,那么曲线长度随t的变化率也就称作曲线的速率。就是说如果对于P(t)求导就是得到的函数就是t时刻的速度

    1回答·1783浏览
  • 狂热爱好者 2017-08-10
    为什么进行基础坐标系变换
    3回答·1464浏览
  • qq_Faraward_0 2017-07-25
    中间的圆圈如果想添加旋转效果该怎么做?

    Drawable drawable=mContent;
    if (drawable!=null){
       canvas.save();

       //剪切矩形区域
       canvas.clipRect(drawable.getBounds());
       canvas.rotate(mRotate,mCirclePointX,mCirclePointY);
       drawable.draw(canvas);
    }

    canvas的rotate(float,float,float)方法是旋转画布 

    第一个参数:旋转角度(0~无穷)

    第二个参数:旋转中心点x坐标

    第三个参数:旋转中心点y坐标

    2回答·2466浏览
  • 慕雪4348792 2017-07-23
    下拉后回不去

    请在setOnTouchListener的MotionEvent.ACTION_UP时候调用mPullDownView.release(),release();就是写在自定义view中的那个值动画函数

    public void release() {
       if (valueAnimator == null){
           valueAnimator = ValueAnimator.ofFloat(mProgress,0);
           valueAnimator.setDuration(300);
           valueAnimator.setInterpolator(new DecelerateInterpolator());
           valueAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
               @Override
               public void onAnimationUpdate(ValueAnimator animation) {
                   Object value = animation.getAnimatedValue();
                   if (value instanceof Float){
                       setProgress((Float) value);
                   }
               }
           });
       }else {
           valueAnimator.cancel();
           valueAnimator.setFloatValues(mProgress,0);
       }
       valueAnimator.start();
    }

    1回答·1259浏览
  • qq_GreatKing_0 2017-07-19
    有没有 源码

    我整理了一下,不过是分开的文件,不是工程,需要的话可以下载。

    http://pan.baidu.com/s/1pLt2TQF


    1回答·1186浏览
  • qq_双民_0 2017-07-09
    求该课程画图工具

    SketchBook

    1回答·1184浏览
  • 慕粉1357432043 2017-07-03
    布局文件没有TouchPullView?

    有,自定义view,和工具无关

    1回答·1265浏览
  • reallythat 2017-07-03
    calculateBezierz方法中第二个参数float... values是什么意思,是传入整个数组吗相当于 float[] values??

    确实是相当于float[] values,调用时传入的参数会被自动放入一个数组;并且声明时float... values 必须是最后一个参数。

    参考: https://stackoverflow.com/questions/7539033/java-multiple-arguments-dot-notation-varargs

    1回答·1282浏览
  • qq_wt_5 2017-07-01
    demo呢

    我在自己敲,目前敲到3-2

    1回答·1153浏览
  • 慕尼黑3154129 2017-06-30
    都不知道贝塞尔曲线, 以后碰到类似问题,应该先在网上找找都有什么方法实现

    我最开始见到这种“动画”效果的时候,我想到的是外层肯定是有一系列的点连起来的曲线,决定这个曲线的点肯定遵循了某种算法进行分布。我当时只想到了这里,至于用了什么算法当时只是随便搜了一下,搜到了贝塞尔曲线,但是当时没研究怎么实现的。

    2回答·1560浏览
  • 玩吉他的卷眉毛 2017-06-28
    为什么我画出的线会有一片黑影
    已采纳 小小妖侠 的回答

    我整理了一下,不过是分开的文件,不是工程,需要的话可以下载。

    http://pan.baidu.com/s/1pLt2TQF

    你可以对比一下

    2回答·1331浏览
  • 慕尼黑4942162 2017-06-20
    为什么我在setOnTouchListener时MOVE事件总是不走

    在case MotionEvent.ACTION_DOWN:

    要处理的事

    return true;(表示消费了这个事件)

    move事件也是如此

    1回答·2182浏览
  • while1love 2017-06-18
    宽度的计算
    已采纳 小小妖侠 的回答

    这句代码是指view的绘制区域随着进度的不断改变而改变,最开始是整个屏幕宽度,到最后的mTargetWidth。宽度一直在减少

    1回答·1292浏览
数据加载中...
开始学习 免费