Android 是否可以更改比率杆的方向?

Android 是否可以更改比率杆的方向?,android,android-layout,Android,Android Layout,是否有人知道是否可以使分级栏从右向左而不是从左向右移动,或者知道如何操作?您必须自定义分级栏 不过,您只需在显示分级栏图像时玩一些小把戏&然后进行某种反向计算 技巧是在分级栏中显示反向图像。。在分级栏中交换选定和未选定的图像 允许用户在评级栏上评级。必须交换选定和未选定的计算。我的意思是你必须做反向计算 仅由我回答的自定义分级栏的完整工作示例 从此处下载分级栏图标:您可以在分级栏中使用android:rotation=“180” 我在只读分级栏上使用了这种方式,我不知道这是否会影响与分级栏的交互

是否有人知道是否可以使分级栏从右向左而不是从左向右移动,或者知道如何操作?

您必须自定义分级栏

不过,您只需在显示
分级栏
图像时玩一些小把戏&然后进行某种反向计算

技巧是在分级栏中显示反向图像。。在分级栏中交换选定和未选定的图像

允许用户在
评级栏上评级
。必须交换选定和未选定的计算。我的意思是你必须做反向计算

仅由我回答的自定义
分级栏
的完整工作示例


从此处下载分级栏图标:

您可以在分级栏中使用
android:rotation=“180”

我在只读分级栏上使用了这种方式,我不知道这是否会影响与分级栏的交互。

使用属性
android:scaleX=“-1”


然后,您还应该在图形编辑器中旋转可绘制的图形,这比仅仅设置星星的反向数量要容易得多
package com.example.selection;

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Matrix;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.widget.RatingBar;

public class InvertRatingBar extends RatingBar {

    public InvertRatingBar(Context context) {
        super(context);
    }

    public InvertRatingBar(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public InvertRatingBar(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
    }

    @Override
    public boolean onTouchEvent(MotionEvent event) {
        int width = this.getMeasuredWidth();
        event.setLocation(width - event.getX(), event.getY());
        return super.onTouchEvent(event);
    }

    @Override
    protected synchronized void onDraw(Canvas canvas) {
        int width = this.getMeasuredWidth();
        Matrix matrix = canvas.getMatrix();
        matrix.preTranslate(width, 0);  
        matrix.preScale(-1.f, 1);
        canvas.setMatrix(matrix);
        super.onDraw(canvas);
    }
}