小编Sté*_*ane的帖子

?android:attr/selectableItemBackground在黑暗的背景下不够可见

在Android Lollipop上,我正在使用:

android:background="?android:attr/selectableItemBackground"
Run Code Online (Sandbox Code Playgroud)

单击按钮时获得材料动画反馈.

当我有一个包含在白色/浅色布局中的按钮(例如CardView)时,它可以正常工作.

但是当我想在深色背景上使用相同的东西时,我们几乎看不到效果,它不够明显.

有人有想法吗?

谢谢

android material-design android-5.0-lollipop

11
推荐指数
2
解决办法
6590
查看次数

小工具没有在Lollipop上着色

我正在为我的应用程序使用appcompat v21.0.3.我做了像这里写的所有内容:android-developers.blogspot.com/2014/10/appcompat-v21-material-design-for-pre.html

但是在Lollipop(当然还有旧设备上),一些小部件并没有用我的强调色调着色.例如:

  • SwitchCompat着色: 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

8
推荐指数
4
解决办法
7716
查看次数

如何以编程方式创建或更改由不同颜色的线条组成的drawable

我必须绘制一条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)并且没有成功:-(

任何帮助将不胜感激.

android shape line drawable

7
推荐指数
1
解决办法
2万
查看次数

以编程方式创建时剪裁椭圆形状

我有裁剪问题.

首先,我尝试仅显示带有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)

android

7
推荐指数
1
解决办法
8755
查看次数

新的 crashlytics (com.google.firebase.crashlytics.FirebaseCrashlytics) 在非 Google Play 设备上不再工作?

我昨天在我的两个应用程序上从 Fabric Crashlytics 更新到了新的 com.google.firebase.crashlytics.FirebaseCrashlytics 测试版。

与旧的不同,现在 Crashlytics 似乎不再适用于没有 Google Play 服务的设备(例如亚马逊设备)。调用新 API 的大多数方法时,会因“FirebaseCrashlytics 组件不存在”而崩溃。

例如,一些 Firebase 模块(如 Analytics)正在 Amazon 设备上运行,我认为这里也是如此。

有人有这方面的更多信息,或者知道我可以在哪里询问有关它是暂时的还是永久性的更多信息?

android firebase crashlytics crashlytics-beta crashlytics-android

5
推荐指数
1
解决办法
948
查看次数