我是新手,我正在创建一个应用,我在一个布局中包含一个环形状,我使用下面的代码:
Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
int width = size.x;
int height = size.y;
Log.e("(width/2)-70", (width/2)-70+"%%%");
RingDrawable ring = new RingDrawable(0,(width/2)-70 , 0, 0);
ring.setColor(Color.parseColor("#0f000000"));
backgroundSpeaker.setBackground(ring);
// backgroundSpeaker.setAnimation(zoom);
backgroundSpeaker.invalidate();
speaker_layout.invalidate();
上面的代码工作正常,但问题是它只能在5.1以下工作。我无法获得5.1版本以上的任何环形状。出错的是代码需要修改,请帮助!!。提前致谢
答案 0 :(得分:0)
要为较旧的Android版本创建环形,您可以定义带有彩色笔触的透明圆圈。戒指就是中风:
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval" >
<solid android:color="@color/transparent"/>
<stroke android:color="#fff" android:width="5dp" />
或xml-less方式:
GradientDrawable shape = new GradientDrawable();
shape.setColor(Color.Transparent);
shape.setStroke(20, Color.White);
答案 1 :(得分:0)
从这里尝试使用这个:https://github.com/MinaSamy/DailySelfie/blob/master/app/src/main/res/drawable/progress_drawable.xml
<?xml version="1.0" encoding="utf-8"?>
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="100"
android:fromDegrees="0"
android:pivotX="50%"
android:pivotY="50%"
android:toDegrees="360" >
<shape
android:innerRadius="20dp"
android:shape="ring"
android:thickness="4dp"
android:useLevel="false" >
<size
android:height="48dp"
android:width="48dp" />
<gradient
android:centerColor="@color/colorAccent"
android:centerY="0.5"
android:endColor="#00FFFFFF"
android:startColor="@color/colorPrimaryDark"
android:type="sweep"
android:useLevel="false" />
</shape>
</rotate>