Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/202.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 不同宽度的android边框_Java_Android_Colors_Border - Fatal编程技术网

Java 不同宽度的android边框

Java 不同宽度的android边框,java,android,colors,border,Java,Android,Colors,Border,我正在尝试制作ImageView的边框,例如25%蓝色/粗体和75%灰色/薄。让我们这样说: 要获得简单的边框,我正在使用: <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval"> <stroke android:width="1dp" android:color=&

我正在尝试制作ImageView的边框,例如25%蓝色/粗体和75%灰色/薄。让我们这样说:

要获得简单的边框,我正在使用:

<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="oval">
    <stroke android:width="1dp"
        android:color="#A7A9AC"/>
</shape>

什么东西只给我灰色/薄的边框


但如何实现上述示例?可能应该在Java部分中完成,因为边界百分比是可变的,所以必须动态完成。有人建议我创建自定义形状类,并使用ShapeDrawable。但我不知道怎么做。有什么想法或例子吗?

我正在研究一个类似的问题,我想这会有帮助:

只需更改边框的颜色、删除文本并禁用动画,就可以得到所需的内容

编辑:

像这样的

<FrameLayout
    android:layout_width="100dp"
    android:layout_height="100dp">

    <com.philjay.circledisplay.CircleDisplay
        android:layout_width="100dp"
        android:layout_height="100dp"/>

    <ImageView
        android:layout_width="80dp"
        android:layout_height="80dp"
        android:layout_gravity="center"/>

</FrameLayout>

当然,(com.philjay.circledisplay.circledisplay)取决于放置类的路径

如果图像不总是圆形,您可以使用此库:


我认为这可能不适用于shape,但需要使用png文件。或者可以使用elevation,但它需要android 5.0+运行时。我支持15+lvl API。你对使用png文件有什么想法?考虑到蓝色和灰色边框的百分比是动态的(可以随时更改)。只有圆形和灰色部分使用png,并像原始一样在圆形上绘制蓝色部分,但我不知道如何仅绘制部分边框。这就是问题所在。代码非常简洁,但我仍然无法确定如何将此自定义视图设置为ImageView背景。如果您的图像始终是圆形,则可以将两个视图放在框架布局中,并将ImageView设置为较小的大小(高度、宽度)。我会用一些代码编辑答案谢谢你。你的答案并不完全正确,但找到合适的解决方案至关重要。在CircleDisplay类中,圆圈的中间部分仅被白色圆圈覆盖,它不起作用,因为正如我所附的图片所示,边框的蓝色部分部分位于我的ImageView(圆圈)内部,部分位于外部。因此,我发现我需要切掉圆圈的中间部分,这个主题对此很有帮助:然后我使用了u建议的FrameLayout。再次感谢你。