RatingBar用于允许用户对某些产品进行评分。在下面的代码中, getRating()函数用于计算产品的等级。 getRating()函数返回双精度型值。
在Android中创建RatingBar涉及以下步骤:
- 创建一个新的android项目。
- 在您的activity_main.xml中添加RatingBar。
- 添加按钮以调用操作。
- 使用TextView显示等级。
- 要在应用程序中使用评分栏,我们将使用内置的RatingBar小部件,因此第一步是将其导入到项目中。
- 在MainActivity中,使RatingBar对象由变量“ rt”表示,并在XML文件中找到其对应的视图。这是通过findViewById()方法完成的。在Java对象成功绑定到其视图之后,创建用户将与之交互的“星形”布局以设置等级。
- 要获取可绘制的星星,请使用方法rt.getProcessDrawable()。然后,要修改星星的颜色,请使用setColorFilter()方法,并传递参数Color.YELLOW。最后,通过方法rt.getMethod()编写Call方法以提取用户选择的等级的值。
创建MainActivity的程序:
// Below is the code for MainActivity.java
package com.example.hp.rating;
// importing required libraries
import android.graphics.Color;
import android.graphics.PorterDuff;
import android.graphics.drawable.LayerDrawable;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.RatingBar;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
RatingBar rt;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//binding MainActivity.java with activity_main.xml file
rt = (RatingBar) findViewById(R.id.ratingBar);
//finding the specific RatingBar with its unique ID
LayerDrawable stars=(LayerDrawable)rt.getProgressDrawable();
//Use for changing the color of RatingBar
stars.getDrawable(2).setColorFilter(Color.YELLOW, PorterDuff.Mode.SRC_ATOP);
}
public void Call(View v)
{
// This function is called when button is clicked.
// Display ratings, which is required to be converted into string first.
TextView t = (TextView)findViewById(R.id.textView2);
t.setText("You Rated :"+String.valueOf(rt.getRating()));
}
}
注意:对于布局,如果您是初学者,ConstraintLayout很好用,因为它可以根据屏幕调整视图。
该XML文件定义了应用程序的视图。
为MainActivity创建布局的程序:
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.hp.rating.MainActivity"
android:background="@color/colorPrimary">
在这里,我们不需要更改清单文件, ratingBar不需要权限。默认情况下,清单文件中会提及所有创建的新活动。
以下是AndroidManifest.xml的代码
输出: