美文网首页
clipDrawable

clipDrawable

作者: 糖葫芦_倩倩 | 来源:发表于2018-08-17 11:50 被阅读11次

    自带图片的类型真的很多,也很方便,自带动画效果,今天分享这个clipDrawable

    clip.gif

    使用步骤

    • drawable 目录下新建一个clip_img.xml
    <?xml version="1.0" encoding="utf-8"?>
    <clip xmlns:android="http://schemas.android.com/apk/res/android"
        android:drawable="@drawable/header"
          android:clipOrientation="vertical"
          android:gravity="top"
        />
    

    这里这个clipOrientation 有垂直(vertical),水平(horizontal)两种。gravity有很多种可选的值。【top,bottom,left.....】

    • layout 中引入使用
    android:src="@drawable/clip_img"
    

    完整:

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                  android:orientation="vertical"
                    android:padding="15dp">
    
        <LinearLayout
            android:gravity="center_vertical"
            android:id="@+id/top"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal">
    
            <TextView
                android:id="@+id/tv_info"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"/>
    
            <Button
                android:layout_marginLeft="50dp"
                android:layout_width="100dp"
                android:layout_height="wrap_content"
                android:onClick="start"
                android:text="start"/>
        </LinearLayout>
    
        <ImageView
            android:layout_marginTop="30dp"
            android:id="@+id/iv_show"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@drawable/clip_img"
            />
    
    </LinearLayout>
    
    • Activity 中使用
    public class MainActivity extends AppCompatActivity {
    
         ImageView mImageShow;
         TextView mTvShow;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            mImageShow = findViewById(R.id.iv_show);
    
            mTvShow = findViewById(R.id.tv_info);
    
        }
    
        public void start(View view){
            ValueAnimator animator = ValueAnimator.ofInt(0,100);
            animator.setDuration(3000);
            animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
                @Override
                public void onAnimationUpdate(ValueAnimator animation) {
    
                    float value = animation.getAnimatedFraction();
                    float scale = value/1f;
    
                    ClipDrawable drawable = (ClipDrawable) mImageShow.getBackground();
                    drawable.setLevel((int) (10000*scale));
    
                    DecimalFormat format = new DecimalFormat("0.00");
    
                    mTvShow.setText(format.format(scale*100f)+"%");
                }
            });
            animator.start();
        }
    }
    

    完成。

    相关文章

      网友评论

          本文标题:clipDrawable

          本文链接:https://www.haomeiwen.com/subject/tvyzbftx.html