像素化边框作为 android 样式 xml

Pixelated border as an android style xml

我正在尝试为 android 布局中的按钮创建一个 theme/style。我想创建一种边角弯曲但也像素化的样式(以适应我的应用程序的主题),但也通过将文本保留在其边框内来尊重内部文本。

我能够在 javascript/css 中创建这种类型的像素化边框。

.pixelated {
    position: relative;
    display: inline-block;
    padding: 1rem 1.25rem;
    border-radius: 20px;
    border-style: solid;
    border-width: 4px;
    border-color: black;
    border-image-slice: 4;
    border-image-width: 2;
    border-image-outset: 0;
    border-image-source: url('data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%2712%27%20height%3D%2712%27%3E%0A%20%20%3Cpath%20d%3D%27M2%202h2v2H2zM4%200h2v2H4zM10%204h2v2h-2zM0%204h2v2H0zM6%200h2v2H6zM8%202h2v2H8zM8%208h2v2H8zM6%2010h2v2H6zM0%206h2v2H0zM10%206h2v2h-2zM4%2010h2v2H4zM2%208h2v2H2z%27%20fill%3D%27%23000%27%20%2F%3E%0A%3C%2Fsvg%3E');
    // The SVG:
    // <svg xmlns='http://www.w3.org/2000/svg' width='12' height='12'>
    //   <path d='M2 2h2v2H2zM4 0h2v2H4zM10 4h2v2h-2zM0 4h2v2H0zM6 0h2v2H6zM8 2h2v2H8zM8 8h2v2H8zM6 10h2v2H6zM0 6h2v2H0zM10 6h2v2h-2zM4 10h2v2H4zM2 8h2v2H2z' fill='#000' />
    // </svg>
}
<div class="pixelated">A Button</div>
<div class="pixelated">A Longer Button</div>
<div class="pixelated">An Even Longer Button</div>

我想知道是否可以重新创建类似于此 javascript/css 的内容作为 xml style/theme 以用于 android 布局。如果不能将其重新创建为 android 样式,是否可以使用 java 以编程方式创建?

谢谢!

Android 等同于那些 CSS 边框。

他们被称为NinePatch images

你应该能够很容易地转换它们。