Android RatingBar将给定的浮点数四舍五入

Android RatingBar将给定的浮点数四舍五入,android,ratingbar,Android,Ratingbar,我使用的是构建工具23.0.2,我试图给我的评级条视图提供一个浮点数(即2.5),由于我指定的步长,我希望看到半颗星 <RatingBar android:id="@+id/rating_bar" android:layout_width="wrap_content" android:layout_height="wrap_content" android:numStars="5" android:rating="0" android:sca

我使用的是构建工具23.0.2,我试图给我的
评级条
视图提供一个浮点数(即2.5),由于我指定的步长,我希望看到半颗星

<RatingBar
    android:id="@+id/rating_bar"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:numStars="5"
    android:rating="0"
    android:scaleX="0.7"
    android:scaleY="0.7"
    android:stepSize="0.5"/>
    <uses-sdk
        android:minSdkVersion="16"
        android:targetSdkVersion="19" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>


但它总是显示一个圆形的星星!我检查了源代码,发现
setProgress()
方法使用的
setRating()
方法只直接接受一个整数

嗨,这段代码对我来说很好:

  <RatingBar
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/myratingBar"
    android:numStars="5"
    style="?android:attr/ratingBarStyleSmall"
    android:textAlignment="center"
    android:layout_gravity="center"
android:progressBackgroundTint="#000000" />


RatingBar rating = (RatingBar)vi.findViewById(R.id.myratingBar);
LayerDrawable stars = (LayerDrawable) rating.getProgressDrawable();
stars.getDrawable(2).setColorFilter(Color.YELLOW, PorterDuff.Mode.SRC_ATOP);
rating.setRating((float) 4.5);
    <uses-sdk
        android:minSdkVersion="16"
        android:targetSdkVersion="19" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

评级条评级=(评级条)vi.findviewbyd(R.id.myratingBar);
LayerDrawable stars=(LayerDrawable)rating.getProgressDrawable();
stars.getDrawable(2).setColorFilter(Color.YELLOW,PorterDuff.Mode.SRC_);
额定值。设定额定值((浮动)4.5);

用于自定义您的分级栏

嗨,这段代码对我来说很好:

  <RatingBar
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/myratingBar"
    android:numStars="5"
    style="?android:attr/ratingBarStyleSmall"
    android:textAlignment="center"
    android:layout_gravity="center"
android:progressBackgroundTint="#000000" />


RatingBar rating = (RatingBar)vi.findViewById(R.id.myratingBar);
LayerDrawable stars = (LayerDrawable) rating.getProgressDrawable();
stars.getDrawable(2).setColorFilter(Color.YELLOW, PorterDuff.Mode.SRC_ATOP);
rating.setRating((float) 4.5);
    <uses-sdk
        android:minSdkVersion="16"
        android:targetSdkVersion="19" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

评级条评级=(评级条)vi.findviewbyd(R.id.myratingBar);
LayerDrawable stars=(LayerDrawable)rating.getProgressDrawable();
stars.getDrawable(2).setColorFilter(Color.YELLOW,PorterDuff.Mode.SRC_);
额定值。设定额定值((浮动)4.5);
用于自定义分级栏

    <uses-sdk
        android:minSdkVersion="16"
        android:targetSdkVersion="19" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>
步骤1:打开res->layout->activity_main.xml并添加以下代码:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.skholingua.android.custom_ratingbar.MainActivity" >

    <RatingBar
        android:id="@+id/ratingBar5"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/textView2"
        android:layout_centerHorizontal="true" />

    <RatingBar
        android:id="@+id/ratingBar4"
        style="@style/StarRatingBar"
        android:layout_width="wrap_content"
        android:layout_height="50dp"
        android:layout_below="@+id/textView5"
        android:layout_centerHorizontal="true" />

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="98dp"
        android:text="Custom RatingBar with Color"
        android:textAppearance="?android:attr/textAppearanceSmall" />

    <TextView
        android:id="@+id/textView5"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/ratingBar5"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="104dp"
        android:text="Custom RatingBar with Images"
        android:textAppearance="?android:attr/textAppearanceSmall" />

</RelativeLayout>
    <?xml version="1.0" encoding="utf-8"?>
    <layer-list xmlns:android="http://schemas.android.com/apk/res/android" >

        <item
            android:id="@+android:id/background"
            android:drawable="@drawable/skholinguaicon_blue"/>
        <item
            android:id="@+android:id/secondaryProgress"
            android:drawable="@drawable/skholinguaicon_blue"/>
        <item
            android:id="@+android:id/progress"
            android:drawable="@drawable/skholinguaicon"/>

    </layer-list>
    <uses-sdk
        android:minSdkVersion="16"
        android:targetSdkVersion="19" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>
步骤5:打开AndroidManifest.xml并添加以下代码:

    <uses-sdk
        android:minSdkVersion="16"
        android:targetSdkVersion="19" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

    <uses-sdk
        android:minSdkVersion="16"
        android:targetSdkVersion="19" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>
步骤1:打开res->layout->activity_main.xml并添加以下代码:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.skholingua.android.custom_ratingbar.MainActivity" >

    <RatingBar
        android:id="@+id/ratingBar5"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/textView2"
        android:layout_centerHorizontal="true" />

    <RatingBar
        android:id="@+id/ratingBar4"
        style="@style/StarRatingBar"
        android:layout_width="wrap_content"
        android:layout_height="50dp"
        android:layout_below="@+id/textView5"
        android:layout_centerHorizontal="true" />

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="98dp"
        android:text="Custom RatingBar with Color"
        android:textAppearance="?android:attr/textAppearanceSmall" />

    <TextView
        android:id="@+id/textView5"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/ratingBar5"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="104dp"
        android:text="Custom RatingBar with Images"
        android:textAppearance="?android:attr/textAppearanceSmall" />

</RelativeLayout>
    <?xml version="1.0" encoding="utf-8"?>
    <layer-list xmlns:android="http://schemas.android.com/apk/res/android" >

        <item
            android:id="@+android:id/background"
            android:drawable="@drawable/skholinguaicon_blue"/>
        <item
            android:id="@+android:id/secondaryProgress"
            android:drawable="@drawable/skholinguaicon_blue"/>
        <item
            android:id="@+android:id/progress"
            android:drawable="@drawable/skholinguaicon"/>

    </layer-list>
    <uses-sdk
        android:minSdkVersion="16"
        android:targetSdkVersion="19" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>
步骤5:打开AndroidManifest.xml并添加以下代码:

    <uses-sdk
        android:minSdkVersion="16"
        android:targetSdkVersion="19" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>


请尝试@maveň谢谢,但请添加您的解决方案作为答案。欢迎。。。。。。。。我已经更新了,请检查。:)尝试@maveň谢谢,但请添加您的解决方案作为答案。欢迎。。。。。。。。我已经更新了,请检查。:)