Cle*_*lem 129 android android-widget android-styles
我在布局中添加了RatingBar:
<RatingBar
android:id="@+id/ratingbar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:numStars="5"
android:stepSize="1.0"
/>
Run Code Online (Sandbox Code Playgroud)
但评级栏的默认样式太大.
我试着通过添加android风格来改变它:style="?android:attr/ratingBarStyleSmall"
但结果太小,无法使用此属性设置费率.
我该怎么办?
Vai*_*ani 193
如何粘贴这里 给出的代码......
步骤1.你需要自己的评级星res/drawable......


第二步res/drawable你需要ratingstars.xml如下......
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@android:id/background"
android:drawable="@drawable/star_empty" />
<item android:id="@android:id/secondaryProgress"
android:drawable="@drawable/star_empty" />
<item android:id="@android:id/progress"
android:drawable="@drawable/star" />
</layer-list>
Run Code Online (Sandbox Code Playgroud)
第3步res/values你需要styles.xml如下......
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="foodRatingBar" parent="@android:style/Widget.RatingBar">
<item name="android:progressDrawable">@drawable/ratingstars</item>
<item name="android:minHeight">22dip</item>
<item name="android:maxHeight">22dip</item>
</style>
</resources>
Run Code Online (Sandbox Code Playgroud)
第4步在你的布局......
<RatingBar
android:id="@+id/rtbProductRating"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:numStars="5"
android:rating="3.5"
android:isIndicator="false"
style="@style/foodRatingBar"
/>
Run Code Online (Sandbox Code Playgroud)
Far*_*ray 105
默认的RatingBar小部件是sorta'lame.
?android:attr/ratingBarStyleIndicator除了?android:attr/ratingBarStyleSmall您已经熟悉的" " 之外,源代码还会引用样式" " . ratingBarStyleIndicator稍微小一点,但它仍然非常难看,评论指出这些风格"不支持互动".
你可能会更好地自己动手.http://kozyr.zydako.net/2010/05/23/pretty-ratingbar/上有一本不错的指南,展示了如何做到这一点.(我自己还没有这样做,但是会在一天左右的时间里尝试.)
祝好运!
ps很抱歉,我要发布一个链接到你的源码,但我是一个新用户,不能发布超过1个URL.如果你在源代码树中挖掘它,它位于frameworks/base/core/java/android/widget/RatingBar.java
Loo*_*oii 69
只需使用:
android:scaleX="0.5"
android:scaleY="0.5"
Run Code Online (Sandbox Code Playgroud)
根据您的需要更改比例因子.
为了在不创建左侧填充的情况下进行缩放也可以添加
android:transformPivotX="0dp"
Run Code Online (Sandbox Code Playgroud)
zya*_*mys 42
没有必要添加一个监听器?android:attr/ratingBarStyleSmall.只需添加即可
android:isIndicator=false捕获点击事件,例如
<RatingBar
android:id="@+id/myRatingBar"
style="?android:attr/ratingBarStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:numStars="5"
android:isIndicator="false" />
Run Code Online (Sandbox Code Playgroud)
Bou*_*aad 19
操作系统的小工具
<RatingBar
android:id="@+id/ratingBar"
style="?android:attr/ratingBarStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
Run Code Online (Sandbox Code Playgroud)
Moh*_*ikh 15
申请这个.
<RatingBar android:id="@+id/indicator_ratingbar"
style="?android:attr/ratingBarStyleIndicator"
android:layout_marginLeft="5dip"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical" />
Run Code Online (Sandbox Code Playgroud)
use*_*075 15
我找到了一个比上面给出的更容易的解决方案,比滚动自己更容易.我只是创建了一个小评级栏,然后添加了一个onTouchListener.从那里我计算点击的宽度,并从中确定星星的数量.多次使用这个,我发现的唯一的怪癖是绘制一个小的评级栏并不总是在一个表中,除非我将它包含在一个LinearLayout中(在编辑器中看起来,但不是设备) .无论如何,在我的布局中:
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<RatingBar
android:id="@+id/myRatingBar"
style="?android:attr/ratingBarStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:numStars="5" />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
在我的活动中:
final RatingBar minimumRating = (RatingBar)findViewById(R.id.myRatingBar);
minimumRating.setOnTouchListener(new OnTouchListener()
{
public boolean onTouch(View view, MotionEvent event)
{
float touchPositionX = event.getX();
float width = minimumRating.getWidth();
float starsf = (touchPositionX / width) * 5.0f;
int stars = (int)starsf + 1;
minimumRating.setRating(stars);
return true;
}
});
Run Code Online (Sandbox Code Playgroud)
我希望这有助于其他人.绝对比绘制自己的更容易(虽然我发现它也有效,但我只想轻松使用星星).
<RatingBar
android:rating="3.5"
android:stepSize="0.5"
android:numStars="5"
style = "?android:attr/ratingBarStyleSmall"
android:theme="@style/RatingBar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
// if you want to style
<style name="RatingBar" parent="Theme.AppCompat">
<item name="colorControlNormal">@color/colorPrimary</item>
<item name="colorControlActivated">@color/colorAccent</item>
</style>
Run Code Online (Sandbox Code Playgroud)
// 为小评级栏添加这些行
style = "?android:attr/ratingBarStyleSmall"
Run Code Online (Sandbox Code Playgroud)
<RatingBar
android:id="@+id/rating_bar"
style="@style/Widget.AppCompat.RatingBar.Small"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
148979 次 |
| 最近记录: |