是否可以更改RatingBar方向?
你必须定制RatingBar
..
但是你不得不与显示RatingBar
图片&然后某种反向计算做手脚。
窍门将在RatingBar中显示反转图像..在RatingBar中交换选定和未选择的图像。
允许用户对RatingBar
进行评级。你必须交换选择和未选择的计算。我的意思是你必须做反向计算。
自定义RatingBar
的完整工作示例StackOverflow仅由我回答。
从这里下载RatingBar
图标:http://developer.android.com/guide/practices/ui_guidelines/icon_design.html
你可以在你的RatingBar使用android:rotation="180"
将它旋转 我用我的只读Ratingbars这样,我不知道这是否会影响与互动的RatingBar。
那么你也应该旋转画图在图形编辑器,这是不容易的,然后只是设置反向数量的星 –
是的,'android:rotationY = 180'就像一个魅力.. 。 –
使用属性: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);
}
}
感谢。 我真的跳了有一个更简单的方法... –