📜  Android |创建一个RatingBar

📅  最后修改于: 2021-05-09 17:55:39             🧑  作者: Mango

RatingBar用于允许用户对某些产品进行评分。在下面的代码中, getRating()函数用于计算产品的等级。 getRating()函数返回双精度型值。

在Android中创建RatingBar涉及以下步骤:

  1. 创建一个新的android项目。
  2. 在您的activity_main.xml中添加RatingBar。
  3. 添加按钮以调用操作。
  4. 使用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的代码



  
    
        
            
                
  
                
            
        
    
  

输出: