android | Creación de una barra de calificación

RatingBar se utiliza para permitir a los usuarios calificar algunos productos. En el siguiente código , la función getRating() se usa para calcular la calificación de los productos. La función getRating() devuelve un valor de tipo doble.

Los siguientes pasos están involucrados para crear una barra de clasificación en Android:

  1. Crear un nuevo proyecto de Android.
  2. Agregue RatingBar en su activity_main.xml.
  3. Agregar botón para invocar la acción.
  4. Use TextView para mostrar las calificaciones.
  • Para usar la barra de calificación en la aplicación, usaremos el widget RatingBar incorporado, por lo tanto, el primer paso es importarlo al proyecto.
  • En MainActivity, cree el objeto RatingBar indicado por la variable ‘rt’ y busque su vista correspondiente en el archivo XML. Esto se hace mediante el método findViewById(). Después de que el objeto java se haya enlazado con éxito a su vista, cree el diseño de ‘estrellas’, con el que el usuario interactuará, para establecer la calificación.
  • Para obtener las estrellas dibujables, se utiliza el método rt.getProcessDrawable(). Luego para modificar los colores de las estrellas se usa el método setColorFilter() y se pasa el argumento Color.YELLOW. Finalmente, se escribe el método Call para extraer el valor de la calificación que el usuario ha seleccionado, mediante el método rt.getMethod().

Programa para crear 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()));
    }
}

Nota: para el diseño, ConstraintLayout es bueno para usar si es un principiante porque puede ajustar las vistas según las pantallas.
Este archivo XML define la vista de la aplicación.

Programa para crear diseño para MainActivity:

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:app="http://schemas.android.com/apk/res-auto"
  
    <!-- Cover the entire width of the screen -->
    android:layout_width="match_parent"
    <!-- Cover the entire height of the screen -->
    android:layout_height="match_parent"  
  
    tools:context="com.example.hp.rating.MainActivity"
    android:background="@color/colorPrimary">
  
    <RatingBar
        android:id="@+id/ratingBar"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="104dp"
        android:background="@color/colorPrimary"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        tools:layout_constraintLeft_creator="1"
        tools:layout_constraintRight_creator="1"
        tools:layout_constraintTop_creator="1" />
  
    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Rate Me!!!"
        android:textColor="@android:color/background_dark"
        android:textSize="30sp"
        android:textStyle="bold|italic"
        tools:layout_editor_absoluteX="127dp"
        tools:layout_editor_absoluteY="28dp" />
  
    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="148dp"
        android:textColorHint="@color/colorAccent"
        android:textSize="24sp"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/ratingBar"
        tools:layout_constraintRight_creator="1"
        tools:layout_constraintLeft_creator="1" />
  
    <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginBottom="50dp"
        android:layout_marginTop="50dp"
        android:background="@android:color/holo_red_dark"
        android:onClick="Call"
        android:text="Submit"
        android:textColor="@android:color/background_light"
        android:textStyle="bold|italic"
        app:layout_constraintBottom_toTopOf="@+id/textView2"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/ratingBar"
        tools:layout_constraintBottom_creator="1"
        tools:layout_constraintLeft_creator="1"
        tools:layout_constraintRight_creator="1"
        tools:layout_constraintTop_creator="1" />
</android.support.constraint.ConstraintLayout>

Aquí no necesitamos cambiar el archivo de manifiesto, no se requiere permiso para la barra de calificación . De forma predeterminada, todas las nuevas actividades creadas se mencionan en el archivo de manifiesto.

A continuación se muestra el código para AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.hp.rating" >
  
    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme" >
        <activity android:name=".MainActivity" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
  
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
  
</manifest>

Producción:

Publicación traducida automáticamente

Artículo escrito por AnushkaKhattri y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *