javaee论坛

普通会员

225648

帖子

335

回复

349

积分

楼主
发表于 2017-08-24 20:36:06 | 查看: 742 | 回复: 1
一些是查资料参考
<span style="font-size:18px;">public class AlphaListView extends ListView implements AbsListView.OnScrollListener {    private int height;    private int itemHeight;    public AlphaListView(Context context) {        super(context);        init();    }    public AlphaListView(Context context, AttributeSet attrs) {        super(context, attrs);        init();    }    public AlphaListView(Context context, AttributeSet attrs, int defStyleAttr) {        super(context, attrs, defStyleAttr);        init();    }    private void init() {        setOnScrollListener(this);    }    @Override    public void onScrollStateChanged(AbsListView view, int scrollState) {    }    @Override    public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {        //将所有View的透明度设置为1        for(int i = 0; i < getChildCount(); i++){            getChildAt(i).setAlpha(1);        }        //得到第一个可见的View        View v = getChildAt(0);        if(v != null){            //得到这个v的高度            itemHeight = v.getHeight();            //得到可见部分            int visiableLength = v.getBottom();            //得到可见不分部分比例            float ratio = visiableLength * 1.0f / itemHeight;            v.setAlpha(ratio);        }        //得到最后一个可见的View        v = getChildAt(visibleItemCount - 1);        if(v != null){            //得到这个v的高度            itemHeight = v.getHeight();            //得到可见部分            int visiableLength = height - v.getTop();            //得到可见不分部分比例            float ratio = visiableLength * 1.0f / itemHeight;            v.setAlpha(ratio);        }    }    @Override    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {        height = MeasureSpec.getSize(heightMeasureSpec);        super.onMeasure(widthMeasureSpec, heightMeasureSpec);    }}</span>
其中 setAlpha(0) 里面的参数 0.00 到 1.00 设置百分比透明度

 // 对任何控件 View ListView ScrollView 都适用        // 设置 逐渐消逝; 逐渐消失        mListView.setVerticalFadingEdgeEnabled(true);        // 设置消失的距离        mListView.setFadingEdgeLength(100);

后来发现另一种更简单的方法 可以直接通过View设置属性






普通会员

0

帖子

264

回复

277

积分
沙发
发表于 2023-09-24 20:48:41

围观

您需要登录后才可以回帖 登录 | 立即注册

触屏版| 电脑版

技术支持 历史网 V2.0 © 2016-2017