Articles of rippledrawable

AppCompatButton backgroundTint API <21

我想在Buttons上使用涟漪效果。 AppCompat v22.1为AppCompat着色添加了AppCompatButton和新function。 我的布局: 在我的API 22测试设备上,涟漪效应完美无缺,但我正在编写API 11,不幸的是,backgroundTint需要API> = 21.如何在旧API版本上将涟漪效果设置为按钮?

在ImageButton外部实现Ripple效果

我正在尝试为ImageButton实现涟漪效果。我已经在src中设置了背景中的波纹和src中的可绘制图像。 android:background=”@drawable/myripplexml” android:src=”@drawable/myimagepath” 它在按钮布局中给出了很好的涟漪效果。 但是我希望Ripple效果也能扩展到Button Layout之外。另一种方法是使用: android:background=”?android:attr/selectableItemBackgroundBorderless” 但它使用默认颜色和样式。 如何在颜色,形状和尺寸方面进行自定义?

在形状的波纹有透明背景

我在我的应用程序中使用以下形状 它在我的drawable文件夹中。 现在我将我的应用程序更新为Lollipop,我希望对我使用的圆形按钮给出反馈。 所以在drawable-v21文件夹中我把它改成了一个涟漪选择器: 但遗憾的是,在Lollipop中使用上述drawable不会产生涟漪效应。 是因为 ? 谁能告诉我哪里出错了? 谢谢

如何处理9-patch和CardView上的Ripple效果,并控制选择器的状态?

背景 我希望为Android Lollipop及更高版本的listView项添加一个简单的涟漪效果。 首先,我想将它设置为简单的行,然后设置为9个补丁行甚至是CardView。 问题 我确信这个会很容易,因为它甚至不需要我定义普通选择器。 即使对于简单的行,我也没有这样做。 出于某种原因,涟漪效应超出了行的边界: 不仅如此,在某些情况下,物品的背景会卡在我设定的颜色上。 代码 这就是我尝试过的: MainActivity.java public class MainActivity extends ActionBarActivity { @Override protected void onCreate(final Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); final ListView listView = (ListView) findViewById(android.R.id.list); final LayoutInflater inflater = LayoutInflater.from(this); listView.setAdapter(new BaseAdapter() { @Override public View getView(final int position, final View convertView, final ViewGroup parent) { View […]

如何在Android 5.0 Lollipop的代码(而不是xml)中以编程方式使用RippleDrawable?

我的涟漪有以下代码: 现在我想让用户选择自己的颜色,所以我需要以编程方式创建波纹。 我find了这个 ,我认为这是正确的方法,但我不知道如何处理这个问题。 这里将使用波纹: 我需要将背景设置为RippleDrawable如下所示: addButton.setBackground(ripple);

所选状态重写的Android纹波效果

经过一段时间的寻找,我一​​直无法find答案… 我有一个回收的视图,当select的项目有红色背景和白色文本(事先背景是白色的,文字是黑色的)。 为此,我正在使用select器。 我最近试图给这个添加涟漪效应,但除非我长时间点击该项目,否则该项目的背景会直接变为红色而没有波纹。 我假设这是因为select器状态state_selected覆盖sate_pressed上的波纹? 有谁知道是否有办法解决这个问题? 这是我使用的select器代码: <?xml version="1.0" encoding="utf-8"?> <ripple xmlns:android="http://schemas.android.com/apk/res/android" android:color="@android:color/holo_red_dark" > <item> <selector xmlns:android="http://schemas.android.com/apk/res/android" > <item android:drawable="@drawable/ripple" android:state_pressed="true"/> <item android:drawable="@android:color/holo_red_dark" android:state_selected="true"/> <item android:drawable="@android:color/white"/> </selector> </item> </ripple> 提前致谢!

NavigationView +select器+纹波效应状态select不起作用

我已经search了所有的东西,并试用过,但不是运气与NavigationView 。 itemIconTint , itemTextColor和itemBackground工作与ripple效应。 但问题是state selected不能在selector drawable工作 我也创build了drawable-v21并把ripple_navigation_selector.xml 我的目标是当打开的抽屉再次上一个选定的项目应该是黄色的,例如。 通知项目 NavigationView里面main_layout.xml <android.support.design.widget.NavigationView android:id="@+id/navigation_view" android:layout_width="250dp" android:layout_height="match_parent" android:layout_gravity="end" android:background="@color/black" app:headerLayout="@layout/header" app:itemIconTint="@drawable/navigation_view_icon_tint_selector" app:itemTextColor="@drawable/navigation_view_text_selector" app:menu="@menu/drawer" app1:itemBackground="@drawable/ripple_navigation_selector" /> ripple_navigation_selector.xml里面drawable-v21 <item android:id="@android:id/mask" android:drawable="@drawable/navigation_selector"/> <item android:drawable="@drawable/navigation_selector"/> navigation_selector.xml里面drawable-v21 <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android" > <item android:drawable="@color/left_light_yellow" android:state_pressed="true"></item> <item android:drawable="@color/left_light_yellow" android:state_activated="true"></item> <item android:drawable="@color/left_light_yellow" android:state_checked="true"></item> <item android:drawable="@android:color/black"></item> 颜色string名为left_light_yellow <color name="left_light_yellow">#F6CE20</color>

RippleDrawable遮罩颜色,它是什么?

在引用Android L的RippleDrawable时, https://developer.android.com/reference/android/graphics/drawable/RippleDrawable.html ,有一种方法可以屏蔽掉视图内的涟漪效应。 掩饰完成 <ripple android:color="#ff0000ff"> <item android:drawable="@drawable/white" /> </ripple> 我们也可以使用掩码 <ripple android:color="#ff0000ff"> <item android:drawable="@drawable/black" /> </ripple> 正如文件中提到的那样,屏蔽层没有画在屏幕上,而是掩盖了纹波效应。 我很好奇,为什么要在那里设置一个颜色(白色或黑色或其他)? 我们有什么重要的设置颜色作为面具,或者它确实是有价值的吗? 希望有人开导…谢谢!

使用Android 5.0设备的CardView中没有显示selectableItemBackground作为前景的波纹

我在Nexus 5上运行这个。下面是我的CardView的一部分代码: CardView cardView = new CardView(getActivity()); cardView.setRadius(4); LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, 400); lp.setMargins(32, 16, 32, 16); cardView.setLayoutParams(lp); cardView.setContentPadding(50, 50, 50, 50); … cardView.setForeground(selectedItemDrawable); 以下是我如何获取selectedItemDrawable: int[] attrs = new int[] { R.attr.selectableItemBackground }; TypedArray ta = getActivity().obtainStyledAttributes(attrs); selectedItemDrawable = ta.getDrawable(0); ta.recycle(); 当我点击卡时,应该与selectedItemDrawable一起出现的波纹不会出现(看起来和没有设置前景一模一样)。 我正在运行5.0,所以这似乎很奇怪,因为appcompat文档只能说它不适用于前棒棒糖设备。 有人知道为什么这样吗? 最低API级别是16级,目标是21级。

再循环视图中的触摸没有涟漪效应

我有一个回收站,有四个网格元素(2 * 2),像菜单一样工作。 但是,当我点击它们时,没有显示涟漪效应。 它只是带我到下一个活动,没有任何视觉确认视图被按下。 谁能帮忙? 主要活动 public class MainActivity extends AppCompatActivity implements MainMenuAdapter.OnItemClickListener { Toolbar toolbar; private static List<ViewModel> tileItems = new ArrayList<>(); static { tileItems.add(new ViewModel("Activity", "#3F51B5", R.drawable.activity)); tileItems.add(new ViewModel("Profile", "#E91E63", R.drawable.profile)); tileItems.add(new ViewModel("Training", "#FF5722", R.drawable.training)); tileItems.add(new ViewModel("Diet", "#4CAF50", R.drawable.diet)); } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); final RecyclerView recyclerView = […]