android - 自定义不确定进度可绘制缩放

标签 android progress-bar drawable scale

尝试使用将使用垂直缩放的自定义不确定可绘制对象。结果看起来很奇怪,好像只有底部一行像素被缩放了,所以它看起来像这样。

enter image description here

我希望它垂直缩放,所以它看起来像一个传统的糖果条纹不确定进度条。我需要它可扩展的原因是它将覆盖的区域将被加权,所以我不能有一个静态大小。

设置最小高度似乎没有任何改变。将 drawables 更改为 9-patch 会导致平铺(它变成一个 png 覆盖整个区域而不是水平平铺。最后,我需要水平平铺和垂直缩放。

有人对我有想法吗?

编辑:

往上看,我在 ProgressBar 中看到,它们像这样包装了所有位图:

        final Bitmap tileBitmap = ((BitmapDrawable) drawable).getBitmap();
        if (mSampleTile == null) {
            mSampleTile = tileBitmap;
        }

        final ShapeDrawable shapeDrawable = new ShapeDrawable(getDrawableShape());

        final BitmapShader bitmapShader = new BitmapShader(tileBitmap,
                Shader.TileMode.REPEAT, Shader.TileMode.CLAMP);
        shapeDrawable.getPaint().setShader(bitmapShader);

        return (clip) ? new ClipDrawable(shapeDrawable, Gravity.LEFT,
                ClipDrawable.HORIZONTAL) : shapeDrawable;

换句话说,强制您的位图使用 Clamp 进行平铺,而不是遵循您的原始平铺设置。我敢肯定这是有原因的,我不知道。我唯一能想到的就是编写自己的进度条类来进行自己的平铺。

最佳答案

也许你应该使用模式。请参阅文档 drawable-resourse请看 文档的“XML 位图”部分。有一个 tileMode="repeat"我想这会解决你的问题。

<?xml version="1.0" encoding="utf-8"?>
<bitmap
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:src="@[package:]drawable/drawable_resource"
    android:antialias=["true" | "false"]
    android:dither=["true" | "false"]
    android:filter=["true" | "false"]
    android:gravity=["top" | "bottom" | "left" | "right" | "center_vertical" |
                      "fill_vertical" | "center_horizontal" | "fill_horizontal" |
                      "center" | "fill" | "clip_vertical" | "clip_horizontal"]
    android:tileMode=["disabled" | "clamp" | "repeat" | "mirror"] />

关于android - 自定义不确定进度可绘制缩放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8063369/

相关文章:

javascript - Pdf.js 的加载栏

android - ProgressDrawable 图层列表的图像应该是什么样的?

android - Drawable setState 返回 true 但不改变外观

android - 资源可用时出现 ResourcesNotFoundException(API 22 和 23 设备)

java - 使用UsageEvents、UsageEvents.Event 和 MOVE_TO_FOREGROUND 计算每个应用一天内的使用次数

java - 安卓许可证 "LICENSED RESPONSE"错误

php - Phonegap php header 重定向在 android 中不起作用

android - 将 long 转换为 Double 时遇到问题

javascript - 在长时间的 Ajax 调用中显示进度

android - mdpi 图像对于 10 英寸安卓平板电脑来说太小了