如何为此按钮制作9patch按钮

时间:2014-06-10 09:43:46

标签: android nine-patch

我想制作一个这样的按钮,但我不能 因为当我将它转换为9patch时,按钮的行是缩放的。但我想重复并用线条填满按钮
这是原始图像 this is the original image


我希望是这样的 i want to be like this


但它看起来像这样:( But it looks like this :(

3 个答案:

答案 0 :(得分:1)

创建位图资源并重复纹理。

<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
    android:src="@drawable/ab_texture_tile_apptheme"
    android:tileMode="repeat" />

答案 1 :(得分:1)

缩放部分内容时,只能使用9patch。根据您的示例图片,您引用因{9patch而导致的lines of button is scaling

解决方案

不要使用9patch,只需将其设置为欲望视图中的背景Drawable / imageSource

答案 2 :(得分:1)

试试这个:

final float r = 32;
float[] outerRadii = {
        r, r, r, r, r, r, r, r
};
ShapeDrawable d = new ShapeDrawable(new RoundRectShape(outerRadii, null, null));
ShaderFactory factory = new ShaderFactory() {
    @Override
    public Shader resize(int width, int height) {
        Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher);
        Shader shader = new BitmapShader(bitmap, TileMode.REPEAT, TileMode.REPEAT);
        Matrix localM = new Matrix();
        localM.postRotate(45);
        shader.setLocalMatrix(localM);
        return shader;
    }
};
d.setShaderFactory(factory);

someView.setBackgroundDrawable(d);