仿网易云音乐 专辑图片折叠轮播

本文介绍了一种仿网易云音乐专辑图片的折叠轮播效果实现方案,包括自定义ImageView来实现图片的可折叠效果及上下切换动画。通过Matrix的setPolyToPoly方法和Xfermode设置实现图片变形和叠加效果。

仿网易云音乐 专辑图片折叠轮播

先不多说现上一张效果图

这里写图片描述

首先简述一下实现原理

1.首先让我们的imageview**动起来**

其实是不断的.invalidate();函数 让他不断的调用ondarw函数 
(显然我们不必要不断的调用ondarw函数 只有在我们让他动的时候调用即可 所以我们要声明一个变量记录change记录是否产生动画)

2.实现我们的可折叠效果

Matrix的setPolyToPoly方法的使用 
可参考(http://blog.youkuaiyun.com/lmj623565791/article/details/44278417

3.实现图片一上一下的来回切换

paint.setXfermode(xfermode); xfermode就是如何处理两张图片的重叠效果 共有16种处理方式

实现自定义imageview

属性

存放bitmap的list 
动画间隔的变量 
动画桢间隔的变量 
两个handler用于发送消息 
前景与背景的索引

代码

<code class="hljs java has-numbering" style="display: block; padding: 0px; background-color: transparent; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-top-left-radius: 0px; border-top-right-radius: 0px; border-bottom-right-radius: 0px; border-bottom-left-radius: 0px; word-wrap: normal; background-position: initial initial; background-repeat: initial initial;"><span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">package</span> com.cust.myview;

<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">import</span> java.util.ArrayList;
<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">import</span> java.util.List;

<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">import</span> android.content.Context;
<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">import</span> android.graphics.Bitmap;
<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">import</span> android.graphics.BitmapFactory;
<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">import</span> android.graphics.Canvas;
<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">import</span> android.graphics.Matrix;
<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">import</span> android.graphics.Paint;
<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">import</span> android.graphics.PorterDuff.Mode;
<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">import</span> android.graphics.PorterDuffXfermode;
<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">import</span> android.graphics.Xfermode;
<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">import</span> android.os.Handler;
<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">import</span> android.util.AttributeSet;
<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">import</span> android.widget.ImageView;

<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">import</span> com.cust.uischool.R;

<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">public</span> <span class="hljs-class" style="box-sizing: border-box;"><span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">class</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">musicImageView</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">extends</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">ImageView</span>{</span>

    <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">private</span> List<Bitmap> mbitmaps;
    <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">private</span> Paint paint;
    <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">private</span> Xfermode xfermode;
    <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">private</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">boolean</span> change; <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">//当前是否变换</span>
    <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">private</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">int</span>  bhjg=<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">5000</span>; <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">//变换间隔时间</span>

    <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">private</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">int</span>  bhsj=<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">50</span>; <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">//变换时间</span>

    <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">private</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">int</span> frontindex;<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">//前景索引</span>
    <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">private</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">int</span> backindex;<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">//背景索引</span>

    <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">private</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">boolean</span> setbitmap=<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">false</span>; <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">//是否设置bitmap;</span>

    <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">private</span> Matrix matrix;

    <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">private</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">int</span> count=<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span>;

    <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">private</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">int</span> henght;
    <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">public</span> <span class="hljs-title" style="box-sizing: border-box;">musicImageView</span>(Context context) {
        <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">this</span>(context,<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">null</span>);



    }
    <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">public</span> <span class="hljs-title" style="box-sizing: border-box;">musicImageView</span>(Context context, AttributeSet attrs) {
        <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">this</span>(context, attrs, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span>);



    }
    <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">public</span> <span class="hljs-title" style="box-sizing: border-box;">musicImageView</span>(Context context, AttributeSet attrs, <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">int</span> defStyle) {
        <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">super</span>(context, attrs, defStyle);


        paint=<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">new</span> Paint();
        paint.setAntiAlias(<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">true</span>);
        xfermode=<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">new</span> PorterDuffXfermode(Mode.SRC_OVER);
        change=<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">false</span>;
        matrix=<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">new</span> Matrix();
        Bitmap map1=BitmapFactory.decodeResource(getResources(),R.drawable.im2);
        Bitmap map2=BitmapFactory.decodeResource(getResources(),R.drawable.st);
        List<Bitmap> mbitmaps=<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">new</span> ArrayList<Bitmap>();
        mbitmaps.add(map1);
        mbitmaps.add(map2);
        setBitmaps(mbitmaps);
        henght=map1.getHeight();

        bhjg=(<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">int</span>)Math.random()*(<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">5000</span>-<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">2000</span>)+<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">2000</span>;
    }

    <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">public</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">void</span> <span class="hljs-title" style="box-sizing: border-box;">setBitmaps</span>(List<Bitmap> mbitmaps)
    {
        <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">this</span>.mbitmaps=mbitmaps;
        setbitmap=<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">true</span>;
        <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">if</span>(mbitmaps.size()>=<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">2</span>)
        {
            frontindex=<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span>;
            backindex=<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span>;
        }
        <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">else</span>{
            frontindex=<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span>;
            backindex=<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span>;
        }

      <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">new</span> Thread(){
          <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">public</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">void</span> <span class="hljs-title" style="box-sizing: border-box;">run</span>() {
              handler.postDelayed(run, bhjg);

                handler1.postDelayed(run1, bhsj);
          };

      } .start();

    }
    Runnable run1 = <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">new</span> Runnable() {

        <span class="hljs-annotation" style="color: rgb(155, 133, 157); box-sizing: border-box;">@Override</span>
        <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">public</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">void</span> <span class="hljs-title" style="box-sizing: border-box;">run</span>() {
           <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">if</span>(change)
           {
              musicImageView.<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">this</span>.invalidate();

           }
           handler1.postDelayed(run1, bhsj);
        }
    };

    Runnable run = <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">new</span> Runnable() {

        <span class="hljs-annotation" style="color: rgb(155, 133, 157); box-sizing: border-box;">@Override</span>
        <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">public</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">void</span> <span class="hljs-title" style="box-sizing: border-box;">run</span>() {

            change=<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">true</span>;

            handler.postDelayed(run, bhjg);
        }
    };

    Handler handler1= <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">new</span> Handler();
    Handler handler= <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">new</span> Handler();
    <span class="hljs-annotation" style="color: rgb(155, 133, 157); box-sizing: border-box;">@Override</span>
    <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">protected</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">void</span> <span class="hljs-title" style="box-sizing: border-box;">onMeasure</span>(<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">int</span> widthMeasureSpec, <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">int</span> heightMeasureSpec) {

        Bitmap bmp=mbitmaps.get(backindex);

        setMeasuredDimension(bmp.getWidth(), bmp.getHeight());

    }   
    <span class="hljs-annotation" style="color: rgb(155, 133, 157); box-sizing: border-box;">@Override</span>
    <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">protected</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">void</span> <span class="hljs-title" style="box-sizing: border-box;">onDraw</span>(Canvas canvas) {

        <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">super</span>.onDraw(canvas);
        <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">if</span>(change)
        {

            Bitmap bmp=mbitmaps.get(frontindex);
            Bitmap bmp1=mbitmaps.get(backindex);

            count++;
             <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">if</span>(bmp1.getHeight() - <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">5</span>*count>=bmp1.getHeight()/<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">2</span>)
             {

                 <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">//绘制上半部分图像</span>
                 canvas.save();

                 canvas.clipRect( <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span>, bmp1.getWidth(), bmp1.getHeight()/<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">2</span>);
                 canvas.drawBitmap(bmp1, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span>, paint);


                 canvas.restore();

                 <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">//绘制下班部分图像</span>
                 canvas.save();

                 canvas.clipRect( <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span>, bmp1.getHeight()/<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">2</span>, bmp1.getWidth(), bmp1.getHeight());
                 canvas.drawBitmap(bmp, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span>, paint);


                 canvas.restore();

                 <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">//动态改变下半部分图像</span>
                 <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">float</span>[] src = { <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span>, bmp1.getHeight()/<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">2</span>,<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">//  </span>
                             bmp1.getWidth(), bmp1.getHeight()/<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">2</span>,<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">//  </span>
                             bmp1.getWidth(), bmp1.getHeight(),<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">//  </span>
                             <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span>, bmp1.getHeight() }; 


                  henght=bmp1.getHeight() - <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">5</span>*count;
                  <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">float</span>[] dst = { <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span>, bmp1.getHeight()/<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">2</span>,<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">//  </span>
                         bmp1.getWidth(), bmp1.getHeight()/<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">2</span>,<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">//  </span>
                         bmp1.getWidth(), henght,<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">//  </span>
                          <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span>, henght };  

                  System.out.println(count+<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">""</span>);
                  canvas.save();
                  matrix.setPolyToPoly(src, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span>, dst, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span>, src.length >> <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span>); 

                  canvas.clipRect( <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span>, bmp1.getHeight()/<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">2</span>, bmp1.getWidth(), henght);
                  paint.setXfermode(<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">null</span>);

                  paint.setXfermode(xfermode);

                  canvas.drawBitmap(bmp1,matrix, paint);
                  canvas.restore();
                  paint.setXfermode(<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">null</span>);



             }
             <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">else</span>{

                 <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">//绘制上半部分图像</span>
                 canvas.save();

                 canvas.clipRect( <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span>, bmp1.getWidth(), bmp1.getHeight()/<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">2</span>);
                 canvas.drawBitmap(bmp1, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span>, paint);


                 canvas.restore();
                 <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">//绘制下班部分图像</span>
                 canvas.save();

                 canvas.clipRect( <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span>, bmp1.getHeight()/<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">2</span>, bmp1.getWidth(), bmp1.getHeight());
                 canvas.drawBitmap(bmp, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span>, paint);


                 canvas.restore();

                 <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">//动态改变上半部分图像</span>
                 <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">float</span>[] src = { <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span>,<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span>,<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">//  </span>
                             bmp1.getWidth(), <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span>,<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">//  </span>
                             bmp1.getWidth(), bmp1.getHeight()/<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">2</span>,<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">//  </span>
                             <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span>, bmp1.getHeight()/<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">2</span> }; 


                  henght=bmp1.getHeight() - <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">5</span>*count;

                  <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">float</span>[] dst = { <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span>, henght,<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">//  </span>
                         bmp1.getWidth(), henght,<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">//  </span>
                         bmp1.getWidth(), bmp1.getHeight()/<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">2</span>,<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">//  </span>
                         <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span>, bmp1.getHeight()/<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">2</span> }; 

                  System.out.println(count+<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">""</span>);
                  canvas.save();
                  matrix.setPolyToPoly(src, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span>, dst, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span>, src.length >> <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span>); 

                  canvas.clipRect( <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span>, bmp1.getHeight()/<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">2</span>, bmp1.getWidth(), henght);
                  paint.setXfermode(<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">null</span>);

                  paint.setXfermode(xfermode);

                  canvas.drawBitmap(bmp,matrix, paint);
                  canvas.restore();
                  paint.setXfermode(<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">null</span>);

                  <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">if</span>(henght<=<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span>)
                  { <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">//说明动画结束 重置动画参数</span>
                      count=<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span>;
                      change=<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">false</span>;
                      <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">int</span> temp=frontindex;
                      frontindex=backindex;
                      backindex=temp;
                      System.out.println(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"change false"</span>);
                      bhjg=(<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">int</span>)(Math.random()*(<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">8000</span>-<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">5000</span>))+<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">5000</span>;
                      System.out.println(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"bhjg: "</span>+bhjg+<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">""</span>);
                  }

             }



        }
        <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">else</span>{
            <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">if</span>(!setbitmap)
            {
                canvas.drawBitmap(BitmapFactory.decodeResource(getResources(),R.drawable.im2),  matrix, paint);
            }
        }



    }


}</code>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值