View的透明度,设置view透明度setAlpha 及 Alpha透明度渐变动画

> android设置view透明度的效果的三种方式:
1.android:background="#ff6495ED"> 
2.textView.setBackgroundColor(Color.TRANSPARENT);
3.convertView.getBackground().setAlpha(80);

> Android透明度数值对比:
透明度    数值
100%    FF
95%    F2
90%    E6
85%    D9
80%    CC
75%    BF
70%    B3
65%    A6
60%    99
55%    8C
50%    80
45%    73
40%    66
35%    59
30%    4D
25%    40
20%    33
15%    26
10%    1A
5%    0D
0%    00

> view.setAlpha()和 view.getBackground().setAlpha()的区别
 传参:setAlpha()传参是0-1的foalt数 而 getBackground().setAlpha()传入的是0-255的int数;(最终它们都会转化成16进制,setAlpha()传入的参数会先*255转化为int型)
 效果:setAlpha()是对整个view的透明度(包括它的子view)进行设置,setAlpha(0)时view和子view就会消失;
getBackground().setAlpha()是对View的背景透明度设置:getBackground().setAlpha(0)时背景为全透明。

> View设置Alpha值,及动画效果
subView.getBackground().setAlpha(64);
private void startGradientAlphaAnimator(View view) { // ImageView的alpha渐变
        mAlphaAnimation = ObjectAnimator.ofFloat(view, "alpha", 1f, 0.15f);
        mAlphaAnimation.setDuration(1000);
        mAlphaAnimation.setRepeatCount(0);
        mAlphaAnimation.setRepeatMode(ValueAnimator.RESTART);
        mAlphaAnimation.setStartDelay(0);
        mAlphaAnimation.setInterpolator(new LinearInterpolator());
        mAlphaAnimation.start();
    }

private void startAlphaAnimator(View view) { // ImageView的alpha渐变后再变回来
        mAlphaAnimation = ObjectAnimator.ofFloat(view, "alpha", 1f, 1f);
        mAlphaAnimation.setDuration(0);
        mAlphaAnimation.setRepeatCount(0);
        mAlphaAnimation.setRepeatMode(ValueAnimator.RESTART);
        mAlphaAnimation.setStartDelay(0);
        mAlphaAnimation.setInterpolator(new LinearInterpolator());
        mAlphaAnimation.start();
    }

public void stopAlphaAnimator() {
        if (mAlphaAnimation != null && mAlphaAnimation.isRunning()) {
            mAlphaAnimation.cancel();
        }
    }

AlphaAnimation alphaAnimation = new AlphaAnimation(1.0f, 0.2f);
        //设置动画持续时长
        alphaAnimation.setDuration(3000);
        //设置动画结束之后的状态是否是动画的最终状态,true,表示是保持动画结束时的最终状态
        alphaAnimation.setFillAfter(true);
        //设置动画结束之后的状态是否是动画开始时的状态,true,表示是保持动画开始时的状态
        alphaAnimation.setFillBefore(true);
        //设置动画的重复模式:反转REVERSE和重新开始RESTART
        alphaAnimation.setRepeatMode(AlphaAnimation.REVERSE);
        //设置动画播放次数
        alphaAnimation.setRepeatCount(AlphaAnimation.INFINITE);
        //开始动画
        mIvImg.startAnimation(alphaAnimation);
        //清除动画
        mIvImg.clearAnimation();
        //同样cancel()也能取消掉动画
        alphaAnimation.cancel();

> 加载Assert皮肤资源到文件夹下
private void loadAssertToFile() { // 加载Assert皮肤资源到文件夹下
        AssetManager assets = AppContext.getInstance().getAssets();
        try {
            InputStream is = assets.open("hello.txt");
            File file = new File("/data/data/" + AppContext.getInstance().getPackageName() + "/databases");
            if (!file.exists()) {
                file.mkdirs();
            }
            FileOutputStream fos = new FileOutputStream(new File(file, "hello.txt"));
            byte[] buff = new byte[1024 * 8];
            int len = -1;
            while ((len = is.read(buff)) != -1) {
                fos.write(buff, 0, len);
            }
            fos.close();
            is.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页