在5.1之前的Android上环形抽屉

时间:2016-02-11 09:42:13

标签: android

我是新手,我正在创建一个应用,我在一个布局中包含一个环形状,我使用下面的代码:

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版本以上的任何环形状。出错的是代码需要修改,请帮助!!。提前致谢

2 个答案:

答案 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>