有没有办法改变导航抽屉图标的颜色?我的意思是,即使我使用包含多种颜色的 png,应用程序中绘制的图标也只有一种颜色,并且我认为默认颜色是灰色,我可以将其设为彩色吗?
例如:
这是我的 png 文件,我想将其用作图标,但是当我将它用作导航抽屉项目的图标时,它会像这样绘制:
我正在制作一个自定义按钮视图,它具有渐变边框、圆角和透明背景。我将按钮的背景设置为由以下代码生成的可绘制对象:
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;
    }
}
唯一的问题是,当你现在点击按钮时,你没有任何反馈。当我已经使用生成的可绘制对象作为背景时,如何在按钮背面添加波纹效果?我必须用 LayerDrawable 做一些事情吗?
我的按钮看起来像这样:
我真正想要实现的目标
以编程方式创建一个与此 …
当我尝试在 Android N 的 View Pager 中加载一组图像时遇到问题(检查 Samsung S6)。
java.lang.RuntimeException:画布:尝试绘制太大(132710400字节)位图。
图片尺寸为960*720,大小为64k,View Pager数量为4
现在我将所有图像放在普通的“drawable”文件夹中。我尝试将所有图像替换为“drawable-xxhdpi”,但问题仍然存在。
我有一个水平视图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...
不幸的是,它不起作用。孩子们之间没有空白。
有谁知道那里出了什么问题吗?
我正在开发一个 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
这是我的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'
    }
}
和proguard-rules.pro:
#Flutter Wrapper
-keep class io.flutter.app.** { *; …警告说: 此文件夹配置('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
那么,就我而言,如何摆脱这个警告?
我的启动屏幕上有一个徽标和两个文件: logo_night.png和logo_day.png
我如何使用这两个文件更改此徽标,该徽标将根据应用程序的主题而变化?
如何创建一个drawable圆圈,蓝色笔划为5像素,透明填充.
我将把它传给drawable一个人ItemizedOverlay.
我想用代码做这个,我会知道圆的半径.
我有两个不同父母的按钮.
我正在尝试将按钮效果应用于按钮触摸.
这是我的代码:
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;
        }
}
它将效果应用于按钮,但问题是因为我有2个按钮,即使我点击一个按钮,效果也会应用到另一个按钮.
请帮我解决这个问题.
我之前一直在使用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')
这是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>
这些资源文件在代码中有多重要?我可以删除XML文件中的引用吗?
提前致谢
android ×10
android-drawable ×10
android-view ×1
apk ×1
bitmap ×1
canvas ×1
colorfilter ×1
drawable ×1
effects ×1
flutter ×1
kotlin ×1
xamarin ×1
xml ×1