2 songbo pp songbo_pp 于 2016.03.10 09:28 提问

android listView 在代码中设置item半透明? 1C

金币不够了。
美工在列表中做了一些蒙版透明,根据数据的状态,设置是否为半透明。请问这个在代码中如何动态实现?

7个回答

u011249920
u011249920   2016.03.10 09:35

详情请看这篇博客《 Android设置透明、半透明等效果》http://2960629.blog.51cto.com/2950629/742499

u011249920
u011249920 你能把你的log和相关部分的代码贴出来吗?
接近 2 年之前 回复
songbo_pp
songbo_pp holder.llItem = (LinearLayout) convertView.findViewById(R.id.llItem); holder.llItem.getBackground().setAlpha(100); 这个我试过了,报空指针异常,在getItemView方法中调用的。
接近 2 年之前 回复
bdmh
bdmh   Ds   Rxr 2016.03.10 09:38

动态设置背景色就行,颜色的最前面两位就是透明度,ff表示不透明,比如 ff666666,其中666666是颜色,ff是透明度

songbo_pp
songbo_pp holder.llItem.setBackgroundColor(0x7f000000); 不起作用。问下linearLayout里还有很多控件textView button,光设置linearLayout的透明度可以全部都透明么?
接近 2 年之前 回复
danielinbiti
danielinbiti   Ds   Rxr 2016.03.10 09:42

如果是数据显示,不是根据事件实现半透明。那可以在adapter的getview中根据数据状态判断,设置item的颜色
示例如下

public View getView(int position, View convertView, ViewGroup parent) {
 if(convertView ==null)
 {
     convertView = LayoutInflater.from(context).inflate(R.layout.listitem, null);
 }
 if(数据状态==xxxx){
 convertView.setBackgroundResource(R.drawable.selector);
 }
 }
danielinbiti
danielinbiti 回复songbo_pp: 放在内部,一屏幕后,滚动时,显示就和当前屏幕一样了,不会变。另外,你这也没有根据数据状态变的判断
接近 2 年之前 回复
danielinbiti
danielinbiti 回复songbo_pp: convertView.setBackgroundResource(R.drawable.myasset_shape_press);这句话不能放到if(==null)这个判断内
接近 2 年之前 回复
songbo_pp
songbo_pp 已经贴了
接近 2 年之前 回复
danielinbiti
danielinbiti 回复songbo_pp: 最好把你的getview代码贴出来
接近 2 年之前 回复
songbo_pp
songbo_pp 刚才试了,怎么没变化。
接近 2 年之前 回复
c1398943612
c1398943612   2016.03.10 09:55

动态更改背景色ARGB值,A就是透明度0~FF 数值越小越透明

songbo_pp
songbo_pp   2016.03.10 10:15
protected View getItemView(View convertView, final int position) {
    final ViewHolder holder;
    if (convertView == null) {
        holder = new ViewHolder();
        convertView = mInflater.inflate(R.layout.prd_p2p_list_item, null);
        convertView.setBackgroundResource(R.drawable.myasset_shape_press);
        holder.llItem = (LinearLayout) convertView.findViewById(R.id.llItem);
        holder.rl_logo = (RelativeLayout) convertView.findViewById(R.id.rl_logo);
        holder.tv_prd_desc = (TextView) convertView.findViewById(R.id.tvPrdDesc);
        holder.pbProgress = (ProgressBar) convertView.findViewById(R.id.pbProgress);
        convertView.setTag(holder);
    } else {
        holder = (ViewHolder) convertView.getTag();
    }

    final Result res = mValues.get(position);
    holder.tvShowTitle1.setText(res.getShowTitle1());
    holder.tvShowValue1.setText(res.getShowValue1());
}
songbo_pp
songbo_pp   2016.03.10 10:17

我的表达有问题,不是ListView的item的背景透明,而是整个item半透明,包括里面的文字按钮。我想到的可能做法是,在item上覆盖一个透明的图片,不知道是否可行?

dongfeng9ge
dongfeng9ge   Ds   Rxr 2016.04.30 15:39

ARGB的前两位设置为88

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!