是否可以更改RatingBar方向?

Asa*_*ssi 9 android android-layout

有没有人知道是否有可能让RatingBar从右到左而不是从左到右,或者知道怎么做?

ibm*_*khd 6

您可以android:rotation="180"在评级栏中使用我在我的只读评级栏上使用这种方式旋转它,我不知道这是否会影响与评级栏的交互.


Mik*_*ika 5

使用属性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);
    }
}
Run Code Online (Sandbox Code Playgroud)


Kar*_*iya 0

你必须定制RatingBar..

然而,你只需要玩一些技巧来显示RatingBar图像,然后进行某种反向计算。

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

允许用户对 进行评分RatingBar。您必须交换选定和未选定的计算。我的意思是你必须进行反向计算。

StackOverflowRatingBar上自定义的完整工作示例仅由我回答。

RatingBar从这里下载图标: http://developer.android.com/guide/practices/ui_guidelines/icon_design.html