使用属性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)
你必须定制RatingBar..
然而,你只需要玩一些技巧来显示RatingBar图像,然后进行某种反向计算。
技巧将在评级栏中显示反向图像。在评级栏中交换选定和未选定的图像。
允许用户对 进行评分RatingBar。您必须交换选定和未选定的计算。我的意思是你必须进行反向计算。
StackOverflowRatingBar上自定义的完整工作示例仅由我回答。
RatingBar从这里下载图标: http://developer.android.com/guide/practices/ui_guidelines/icon_design.html
| 归档时间: |
|
| 查看次数: |
1655 次 |
| 最近记录: |