我需要一个自定义形状,如下所示:
形状的样式是笔触,因此该示例的橙色部分是圆的边框。这里的白色部分不是形状的一部分!它是形状下布局的颜色。我希望你明白我的意思。形状不应该在中间绘制白色圆圈,形状应该绘制橙色的东西。
更多:我需要白色圆圈的宽度和高度相对于屏幕尺寸。如果屏幕宽度小于高度,则需要白色圆圈的半径为宽度/ 2,如果高度小于宽度,则需要将圆的半径设置为高度/ 2.
我找不到任何可以实现的目标。我认为这将是一个简单的任务,因为它是一个简单的绘图,但android似乎很难实现,因为形状总是设置固定dp的宽度和高度,如下例中的120dp:
<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<solid
android:color="#666666"/>
<size
android:width="120dp"
android:height="120dp"/>
</shape>
我需要这个drawable作为imageview的叠加层。
答案 0 :(得分:0)
您是否考虑过在运行时设置形状的宽度和高度?
您可以像这样找到屏幕的宽度和高度:
int width = yourView.getWidth(); int height = yourView.getHeight();
或只是
int width = getWidth(); int height = getHeight();
或
Context c = context;
DisplayMetrics metrics = c.getResources().getDisplayMetrics();
screenWidth = metrics.widthPixels;
screenHeight = metrics.heightPixels;
在最后一个例子中,你需要从某个地方获取上下文变量。
然后将它除以2并设置形状。
答案 1 :(得分:0)
你可以通过在白色圆圈drawable中使用ShapeDrawable来实现这一点。
采用完整橙色背景的一个相对布局,并添加带有白色圆圈可绘制的imageview。
希望这会有所帮助:)