是否可以更改RatingBar方向?

时间:2011-09-29 06:59:07

标签: android android-layout

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

3 个答案:

答案 0 :(得分:6)

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

答案 1 :(得分:3)

使用属性android:scaleX="-1"

OR

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);
    }
}

答案 2 :(得分:0)

您必须自定义RatingBar ..

然而,您只需要显示RatingBar图像&然后是某种逆向计算。

Trick将在RatingBar中显示反向图像..在RatingBar中交换选定和未选择的图像。

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

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

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