带alpha的setBackgroundResource显示以前的颜色

时间:2015-05-12 15:17:54

标签: android android-layout view android-5.0-lollipop

我有一个简单的BaseAdapter,它显示了用户可以打开或关闭的选项列表。当选择该选项时,我使用不透明的颜色,当它关闭时,我使用透明背景。

在OS的早期版本中(至少高达4.4.4),这可以按预期工作。但是,当我将其中一个测试平板升级到Android 5.1.1时,我注意到每当我关闭一个项目(并将背景资源设置为透明)时,“选定”颜色就会渗透。直到我做出另一个选择(在不同的项目上),“旧”颜色消失并且该项目真正透明。

以下是用于设置后台资源的代码段。我已经尝试将资源设置为0(删除背景)和透明#00000000无效。

 @Override @NotNull
 public View getView ( int position, @Nullable View view, @NotNull ViewGroup viewGroup )
 {
   final MapLayerModel mapLayer = (MapLayerModel)getItem( position );

   final Context context = viewGroup.getContext();
   final LayoutInflater inflater = (LayoutInflater)context.getSystemService( Context.LAYOUT_INFLATER_SERVICE );

   if( view == null )
   {
      view = inflater.inflate( R.layout.menu_list_item, null );
   }

   // Configure the view
   //

   // Set text view
   final TextView textView = (TextView)view.findViewById( R.id.menu_item_textview );
   textView.setText( mapLayer.getDisplayName() );

   // Set image
   final ImageView imageView = (ImageView)view.findViewById( R.id.menu_item_image );
   imageView.setImageResource( mapLayer.getIconResource() );

   final ImageView selectionIndicatorView = (ImageView)view.findViewById( R.id.selected_indicator );
   if( mapLayer.isSelected() )
   {
      Log.e( LOG_TAG, "Setting " + mapLayer.getType() + " to selected color" ) ;
      view.setBackgroundResource( R.color.layer_menu_item_selected );
      selectionIndicatorView.setImageResource( R.drawable.layer_menu_item_selected );
   }
   else
   {
      Log.e( LOG_TAG, "Setting " + mapLayer.getType() + " to transparent" ) ;
      view.setBackgroundResource( R.color.crc_transparent );
      selectionIndicatorView.setImageResource( R.drawable.layer_menu_item_unselected );
   }

   return view;
}

其中R.color.crc_transparent设置为#00000000

0 个答案:

没有答案