【问题标题】:Android shape doesn't stretch as progressDrawable on seekbarAndroid 形状不会像 seekbar 上的 progressDrawable 那样拉伸
【发布时间】:2015-05-08 11:24:27
【问题描述】:

我使用垂直 Seekbar 库作为颜色选择器。我设法将 ProgressDrawable 设置为具有渐变的形状,代表搜索栏的颜色。

LinearGradient test = new LinearGradient(0.f, conv.toPixels(170), 0.0f, 0.0f,
                new int[]{0xFF000050, 0xFF0000FF, 0xFF00FF00, 0xFF00FFFF,
                        0xFFFF0000, 0xFFFF00FF, 0xFFFFFF00, 0xFFFFFFFF},
                null, Shader.TileMode.CLAMP);
        ShapeDrawable shape = new ShapeDrawable(new RectShape());
        shape.getPaint().setShader(test);

我在这里创建渐变并将他解析为一个形状。之后我将形状设置为搜索栏的 ProgressDrawable。

    colorSeekbar.setMax(252 - 1);
    colorSeekbar.setProgressDrawable(shape);

最后我添加了我的搜索栏:

    LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(conv.toPixels(80), conv.toPixels(200));
    params.setMargins(conv.toPixels(5), conv.toPixels(5), conv.toPixels(5), conv.toPixels(5));

    colorSeekbar.setThumb(ResourcesCompat.getDrawable(getResources(), R.drawable.seek_thumb_color, null));
    colorSeekbar.setOrientation(UniversalSeekBar.BOTTOM_TO_TOP);

    popUpBulbContainer.addView(colorSeekbar, params);

红色背景是seekbar的背景。渐变是progressDrawable,蓝色背景是水平LinearLayout的背景,它包含所有视图。 您会注意到在搜索栏顶部设置了拇指,progressDrawable 无法到达那里。 任何想法我该如何解决这个问题?

【问题讨论】:

    标签: android


    【解决方案1】:

    LinearLayout 似乎是正确的。它必须与您在活动布局文件中的父布局有关。

    如果您以编程方式添加所有这些元素,请确保将元素 (popUpBulbContainer) 附加到活动的顶部布局。

    【讨论】:

    • 是的,一切都是以编程方式完成的,父级是一个弹出窗口。
    • 尝试将 popUp 布局设置为 FrameLayout,并将 wrap-content 的宽度和高度以及重力设置为 center
    猜你喜欢
    • 2016-06-28
    • 2015-05-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多