是否可以改变RatingBar方向?

有谁知道是否有可能使RatingBar从右到左而不是从左到右,或有一个想法如何做到这一点?

Solutions Collecting From Web of "是否可以改变RatingBar方向?"

你必须定制RatingBar ..

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

招数将在RatingBar中显示反向图像..在RatingBar中交换未select的图像。

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

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

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

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

使用属性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); } }