标签: android-drawable

Android 导航抽屉图标的颜色

有没有办法改变导航抽屉图标的颜色?我的意思是,即使我使用包含多种颜色的 png,应用程序中绘制的图标也只有一种颜色,并且我认为默认颜色是灰色,我可以将其设为彩色吗?

例如:

我想用于图标的 png 文件

这是我的 png 文件,我想将其用作图标,但是当我将它用作导航抽屉项目的图标时,它会像这样绘制:

在此输入图像描述

android android-drawable navigation-drawer material-design

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

在透明自定义按钮视图上获得波纹效果

我正在制作一个自定义按钮视图,它具有渐变边框、圆角和透明背景。我将按钮的背景设置为由以下代码生成的可绘制对象:

protected Drawable getBackgroundDrawable() {
    GradientDrawable backgroundDrawable = new GradientDrawable(
            mOrientation,
            mGradientColors);
    backgroundDrawable.setCornerRadius(getHeight() / 2);
    backgroundDrawable.setShape(GradientDrawable.RECTANGLE);

    if (!mFilled) {
        Bitmap background = Bitmap.createBitmap(getWidth(), getHeight(), Bitmap.Config.ARGB_8888);
        Canvas backgroundCanvas = new Canvas(background);
        backgroundCanvas.drawARGB(0, 0, 0, 0);
        backgroundDrawable.setBounds(0, 0, getWidth(), getHeight());
        backgroundDrawable.draw(backgroundCanvas);

        Paint rectPaint = new Paint();
        rectPaint.setAntiAlias(true);
        rectPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.CLEAR));
        backgroundCanvas.drawRoundRect(new RectF(mStroke, mStroke,
                        getWidth() - mStroke,
                        getHeight() - mStroke),
                getHeight() / 2,
                getHeight() / 2,
                rectPaint);

        return new BitmapDrawable(getResources(), background);
    } else {
        return backgroundDrawable;
    }
}
Run Code Online (Sandbox Code Playgroud)

唯一的问题是,当你现在点击按钮时,你没有任何反馈。当我已经使用生成的可绘制对象作为背景时,如何在按钮背面添加波纹效果?我必须用 LayerDrawable 做一些事情吗?

我的按钮看起来像这样:

在此输入图像描述

我真正想要实现的目标

以编程方式创建一个与此 …

android android-view android-drawable rippledrawable

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

画布试图绘制太大的位图

当我尝试在 Android N 的 View Pager 中加载一组图像时遇到问题(检查 Samsung S6)。

java.lang.RuntimeException:画布:尝试绘制太大(132710400字节)位图。

图片尺寸为960*720,大小为64k,View Pager数量为4

现在我将所有图像放在普通的“drawable”文件夹中。我尝试将所有图像替换为“drawable-xxhdpi”,但问题仍然存在。

android canvas bitmap android-viewpager android-drawable

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

以编程方式创建和设置 LinearLayout 分隔线

我有一个水平视图LinearLayout,我希望在其子视图之间有 50 像素的空白空间。经过一些研究,我发现分隔器可以完成这项工作。我不想使用 XML,而是以编程方式创建所有内容。这是我的代码:

LinearLayout parent = new LinearLayout(getContext());
parent.setOrientation(LinearLayout.HORIZONTAL);

ColorDrawable divider = new ColorDrawable(Color.TRANSPARENT);
divider.setBounds(0, 0, 50, 0);             
parent.setDividerDrawable(divider);
parent.setShowDividers(LinearLayout.SHOW_DIVIDER_MIDDLE);

....children are added here to parent...
Run Code Online (Sandbox Code Playgroud)

不幸的是,它不起作用。孩子们之间没有空白。

有谁知道那里出了什么问题吗?

android android-linearlayout android-drawable

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

Android 绘图在调试中工作,但在发布中变成黑色方块

我正在开发一个 Android 应用程序(用 Flutter 编写,但我认为这并不重要),它使用一个名为的可绘制对象,quick_plus.png如下所示:

在此输入图像描述

它在调试模式下工作得很好。

但在发布模式下则不然,可quick_plus.png绘制对象变成了黑色方块。解压我的 APK 后,我确认这也是它们所包含的内容,只是一个黑色方块:

在此输入图像描述

不知道这是否相关,但我通过遵循bundletool文档生成了这些APK :

bundletool build-apks \
--bundle=build/app/outputs/bundle/release/app-release.aab \
--output=build/app/outputs/bundle/release/app-release.apks \
--ks=... \
--ks-pass=... \
--ks-key-alias=... \
--key-pass=...

bundletool install-apks --apks=build/app/outputs/bundle/release/app-release.apks
Run Code Online (Sandbox Code Playgroud)

这是我的build.gradle发布配置:

signingConfigs {
    release {
        keyAlias keystoreProperties['keyAlias']
        keyPassword keystoreProperties['keyPassword']
        storeFile keystoreProperties['storeFile'] ? file(keystoreProperties['storeFile']) : null
        storePassword keystoreProperties['storePassword']
    }
}
buildTypes {
    release {
        signingConfig signingConfigs.release

        minifyEnabled true
        useProguard true

        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}
Run Code Online (Sandbox Code Playgroud)

proguard-rules.pro

#Flutter Wrapper
-keep class io.flutter.app.** { *; …
Run Code Online (Sandbox Code Playgroud)

android apk android-drawable flutter

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

最近我将最小 sdk 版本更改为 24 并收到 1 条关于 drawable 的 lint 警告如何解决这个问题?

警告说: 此文件夹配置('v24')是不必要的;'minSdkVersion' 为 24。将这个文件夹中的所有资源合并到 'drawable-anydpi' 中。

当我将 drawable-anydpi-v24 重命名为 drawable-anydpi 时,它说资源与另一个资源文件发生冲突(png 与 xml 发生冲突)。也就是说,存在一个扩展名为 .xml 的相同资源文件。

请注意,在 drawable-anydpi-v24 中有 png 通知图标文件。

而且也没有任何名称为 drawable-anydpi 的文件夹。所以我将 drawable-anydpi-v24 重命名为 drawable-anydpi。

我当前的项目有这个可绘制文件夹: drawable、drawable-anydpi-v24、drawable-hdpi、drawable-mdpi、drawable-nodpi、drawable-v24、drawable-xhdpi、drawable-xxhdpi、drawable-xxxhdpi

那么,就我而言,如何摆脱这个警告?

android android-drawable

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

我如何根据应用程序主题(白天/晚上)更改 icon.png android kotlin

我的启动屏幕上有一个徽标和两个文件: logo_night.pnglogo_day.png

我如何使用这两个文件更改此徽标,该徽标将根据应用程序的主题而变化?

android kotlin android-drawable

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

如何创建一个圆形绘图?

如何创建一个drawable圆圈,蓝色笔划为5像素,透明填充.

我将把它传给drawable一个人ItemizedOverlay.

我想用代码做这个,我会知道圆的半径.

android drawable android-drawable

0
推荐指数
1
解决办法
9249
查看次数

在Android中的视图上应用并清除ColorFilter

我有两个不同父母的按钮.

我正在尝试将按钮效果应用于按钮触摸.

这是我的代码:

public class ButtonHighlighterOnTouchListener implements OnTouchListener {

    final Button button;

    public ButtonHighlighterOnTouchListener(final Button imageButton) {
      super();
      this.button = imageButton;
    }

    public boolean onTouch(final View view, final MotionEvent event) {
        switch (event.getAction()) {
        case MotionEvent.ACTION_DOWN:
            button.getBackground().setColorFilter(Color.parseColor("#B7B2B0"), PorterDuff.Mode.MULTIPLY);
            button.invalidate();
            break;
        case MotionEvent.ACTION_CANCEL:
            button.getBackground().clearColorFilter();
            button.invalidate();
            break;
        case MotionEvent.ACTION_UP:
            button.getBackground().clearColorFilter();
            button.invalidate();
            break;
        }
        return false;
        }
}
Run Code Online (Sandbox Code Playgroud)

它将效果应用于按钮,但问题是因为我有2个按钮,即使我点击一个按钮,效果也会应用到另一个按钮.

请帮我解决这个问题.

android effects colorfilter android-button android-drawable

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

未找到Google Play组件的可绘制资源文件

我之前一直在使用Xamarin Studio对Google Maps应用程序进行编码,并将文件复制到Visual Studio中使用的新文件夹中.

在Visual Studio中构建Android应用程序时,我收到的所有资源错误都与Google Play组件有关.

这是一个错误:

No resource found that matches the given name (at 'drawable' with value '@drawable/common_signin_btn_icon_pressed_dark')
Run Code Online (Sandbox Code Playgroud)

这是XML文件:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:state_pressed="true"
        android:drawable="@drawable/common_signin_btn_icon_pressed_dark" />
    <item
        android:state_enabled="false"
        android:state_focused="true"
        android:drawable="@drawable/common_signin_btn_icon_disabled_focus_dark" />
    <item
        android:state_focused="true"
        android:drawable="@drawable/common_signin_btn_icon_focus_dark" />
    <item
        android:state_enabled="false"
        android:drawable="@drawable/common_signin_btn_icon_disabled_dark" />
    <item
        android:drawable="@drawable/common_signin_btn_icon_normal_dark" />
</selector>
Run Code Online (Sandbox Code Playgroud)

这些资源文件在代码中有多重要?我可以删除XML文件中的引用吗?

提前致谢

xml android xamarin visual-studio-2012 android-drawable

0
推荐指数
1
解决办法
2174
查看次数