第一次在这里问问题,让我们看看...
我在以编程方式在CardView上设置涟漪效应时遇到了麻烦。(但我希望找到一种基本适用于任何视图的方法)问题是,我的卡片是这样编程制作的:
...
//make cardview
CardView result = new CardView(Activity);
//set layout
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(0, 100, 1f);
layoutParams.SetMargins(10, 10, 10, 10);
result.LayoutParameters = layoutParams;
result.Tag = itemId.ToString();
//FAILED ATTEMPT 1:
//result.Foreground = "?android:attr/selectableItemBackground";
//FAILED ATTEMPT 2 :
//result.SetBackgroundDrawable(view.Resources.GetDrawable(Resource.Drawable.ripple));
...
现在,正如您所看到的,我使用前景属性进行了尝试,基于在这里可以找到的类似问题的答案。
result.Background = new RippleDrawable(view.Resources.GetColor(Resource.Color.green),????,?????);
**更新:**卡片在Android 5之前的代码中变得不可见。
...
result.Tag = itemId.ToString();
TypedValue outValue = new TypedValue();
this.Activity.Theme.ResolveAttribute(Android.Resource.Attribute.SelectableItemBackground, outValue, true);
result.SetBackgroundResource(outValue.ResourceId);
好吧,聪明的方法是这样的:
注意:以下代码不适用于运行在API-21或Android Lollipop以下的设备。
将以下XML添加到布局文件夹中。
<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:color="@color/yourViewRippleColor"
tools:targetApi="lollipop">
<item>
<color android:color="@color/yourViewBackgroundColor" />
</item>
<item android:id="@android:id/mask">
<shape android:shape="rectangle">
<solid android:color="@color/yourViewRippleColor" />
</shape>
</item>
</ripple>
_yourView.SetBackgroundResource(Resource.Layout.Ripple);
TypedValue outValue = new TypedValue();
this.Theme.ResolveAttribute(Android.Resource.Attribute.SelectableItemBackground, outValue, true);//In an Activity
this.Activity.Theme.ResolveAttribute(Android.Resource.Attribute.SelectableItemBackground, outValue, true);//In an Fragment
_YourView.SetBackgroundResource(outValue.ResourceId);
我一直在为Lollipop(API 21)开发一个应用程序。 XML:
问题内容: 我想将背景设置为。使用XML时没有问题(有效) …但是我必须在Java代码中执行此操作,因此我已经尝试过 …而且它不起作用,实际上我在第二行得到了一个。因此,在尝试了这种变体之后,我认为资源是一种颜色。 这个没有启动异常,但是…不起作用(按下时背景没有变化,但是按下时状态必须改变)…有什么建议吗? 问题答案: 您可以使用这种方式。
我有两个有棱角的材质按钮。我的目标是以编程方式让按钮在按下某个键时产生涟漪。 看看stack blitz项目:https://stackblitz.com/edit/angular-material-button-vphppo 有没有一种方法可以让按钮在点击或按键的同时产生波纹? 我尝试了这些示例如何在Angular MatListItem上以编程方式触发涟漪效应? 但这会让按钮在点击时产生两次涟
如何在java中向文本视图添加样式?我试图在我的价值观/风格下添加一个。xml,而不是单独添加每个属性。
我正在试图找出为什么我的涟漪效应不符合我放置它的形状。下面是我正在使用的代码: 这是我设置到ImageViews背景的多用途按钮 这是我正在研究的可抽屉: 正如您在这个版本中所看到的,虽然它已经修复了现在在边界内的问题,但它不再保持涟漪效应;它缓慢地将背景色转换为第二种颜色,而不是产生实际的涟漪效果。 另外,为了明确起见,我还尝试将形状移动到它自己的可绘制文件(名为testing2),然后像下面这
但它不会改变...