在Android Lollipop上,我正在使用:
android:background="?android:attr/selectableItemBackground"
Run Code Online (Sandbox Code Playgroud)
单击按钮时获得材料动画反馈.
当我有一个包含在白色/浅色布局中的按钮(例如CardView)时,它可以正常工作.
但是当我想在深色背景上使用相同的东西时,我们几乎看不到效果,它不够明显.
有人有想法吗?
谢谢
我正在为我的应用程序使用appcompat v21.0.3.我做了像这里写的所有内容:android-developers.blogspot.com/2014/10/appcompat-v21-material-design-for-pre.html
但是在Lollipop(当然还有旧设备上),一些小部件并没有用我的强调色调着色.例如:
SwitchCompat着色: 
ListPreference没有着色 
ProgressDialog没有着色 
这是我的代码:
的build.gradle
...
compile 'com.android.support:appcompat-v7:21.0.+'
...
Run Code Online (Sandbox Code Playgroud)
AndroidManifest.xml中
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/CET"
android:hardwareAccelerated="true"
tools:replace="label">
Run Code Online (Sandbox Code Playgroud)
的themes.xml
<resources>
<style name="CET" parent="Theme.AppCompat.Light.NoActionBar">
<item name="windowActionBar">false</item>
<item name="colorPrimary">@color/primary</item>
<item name="colorPrimaryDark">@color/primary_dark</item>
<item name="colorAccent">@color/accent</item>
</style>
</resources>
Run Code Online (Sandbox Code Playgroud)
colors.xml
<resources>
<!-- App branding color -->
<color name="primary">#a32b30</color>
<!-- Darker variant for status bar and contextual app bars -->
<color name="primary_dark">#000000</color>
<!-- Theme UI constrols like checkboxes and text fields -->
<color name="accent">#a32b30</color>
</resources>
Run Code Online (Sandbox Code Playgroud)
有人有想法吗?
更新:截至2015年6月,仍然无法正常工作,但我最终使用https://github.com/afollestad/material-dialogs.对包括ListPreferences在内的对话框非常有用.
android android-appcompat android-widget android-5.0-lollipop
我必须绘制一条3dp线来表示quizz游戏中的关卡完成.
此行必须为2种颜色.例如,如果用户已完成该级别的40%,则该行的前40%将为红色,另外60%为灰色.
我设法用一个drawable做到了:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="line" >
<size android:height="3dp" android:width="40dp"/>
<stroke
android:width="1dp"
android:color="#FFFC10" />
</shape>
</item>
<item android:left="40dp">
<shape android:shape="line" >
<size android:height="3dp" android:width="60dp" />
<stroke
android:width="1dp"
android:color="#DDDDDD" />
</shape>
</item>
</layer-list>
Run Code Online (Sandbox Code Playgroud)
然后我用ImageView显示它:
<ImageView
android:id="@+id/row_completion_bar"
android:src="@drawable/completion_bar"
android:layout_width="100dp"
android:layout_height="3dp" />
Run Code Online (Sandbox Code Playgroud)
......但是现在,我必须能够根据用户完成情况改变这个40%/ 60%的比例.
第一个问题:最有效的方法是什么?在运行时更改drawable?或者在Java中运行时创建一个新的drawable?
第二个问题:怎么做?我试过两种方式(在java代码中重新创建这个drawable /在运行时改变xml drawable)并且没有成功:-(
任何帮助将不胜感激.
我有裁剪问题.
首先,我尝试仅显示带有Xml的椭圆形状.我有以下代码:
RES /抽拉/ circle.xml
<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval" >
<size
android:width="240dp"
android:height="240dp" />
<solid
android:color="#FFFFFF" />
<stroke
android:width="2dp"
android:color="#EEEEEE" />
</shape>
Run Code Online (Sandbox Code Playgroud)
*RES /布局/的test.xml
....
<RelativeLayout
android:id="@+id/circle_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1" >
<ImageView
android:src="@drawable/circle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerInParent="true" />
</RelativeLayout>
....
Run Code Online (Sandbox Code Playgroud)
它工作得很完美,给了我这个:截图
问题是,出于各种原因,我必须按程序进行相同的操作.
我有这个代码:
RelativeLayout layout = (RelativeLayout) findViewById(R.id.circle_layout);
ShapeDrawable drawable = new ShapeDrawable(new OvalShape());
drawable.getPaint().setColor(Color.parseColor("#EEEEEE"));
drawable.getPaint().setStyle(Style.STROKE);
drawable.getPaint().setStrokeWidth(dpToPx(2));
drawable.getPaint().setAntiAlias(true);
drawable.setIntrinsicHeight(dpToPx(240));
drawable.setIntrinsicWidth(dpToPx(240));
ImageView iv = new ImageView(this);
iv.setImageDrawable(drawable);
RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(
RelativeLayout.LayoutParams.WRAP_CONTENT,
RelativeLayout.LayoutParams.WRAP_CONTENT);
lp.addRule(RelativeLayout.CENTER_IN_PARENT);
iv.setLayoutParams(lp);
layout.addView(iv);
Run Code Online (Sandbox Code Playgroud)
dpToPx功能是:
private …Run Code Online (Sandbox Code Playgroud) 我昨天在我的两个应用程序上从 Fabric Crashlytics 更新到了新的 com.google.firebase.crashlytics.FirebaseCrashlytics 测试版。
与旧的不同,现在 Crashlytics 似乎不再适用于没有 Google Play 服务的设备(例如亚马逊设备)。调用新 API 的大多数方法时,会因“FirebaseCrashlytics 组件不存在”而崩溃。
例如,一些 Firebase 模块(如 Analytics)正在 Amazon 设备上运行,我认为这里也是如此。
有人有这方面的更多信息,或者知道我可以在哪里询问有关它是暂时的还是永久性的更多信息?
android firebase crashlytics crashlytics-beta crashlytics-android