Ratingbar의 크기를 어떻게 줄일 수 있습니까?
내 활동에는 등급 막대가 있습니다. 그러나이 바의 크기가 너무 큽니다! 어떻게 작게 만들 수 있습니까?
편집하다
Gabriel Negut 덕분에 다음과 같은 스타일로 작업했습니다.
<RatingBar
style = "?android:attr/ratingBarStyleSmall"
android:numStars = "5"
android:rating = "4" />
이제 크기는 줄어들었지만 별 수와 등급은 적용되지 않습니다 !!! 왜? 나는 그중 6 개가 선택된 7 개의 별을 가지고 있습니다.
내가 게시 한 원래 링크가 이제 끊어졌습니다 (링크 만 게시하는 것이 가장 좋은 방법이 아닌 이유가 있습니다). 당신은 스타일에이 RatingBar
중 하나에 ratingBarStyleSmall
또는 상속 사용자 정의 스타일 Widget.Material.RatingBar.Small
(당신을 가정하면 앱에서 재질 디자인을 사용하는)를.
옵션 1:
<RatingBar
android:id="@+id/ratingBar"
style="?android:attr/ratingBarStyleSmall"
... />
옵션 2 :
// styles.xml
<style name="customRatingBar"
parent="android:style/Widget.Material.RatingBar.Small">
... // Additional customizations
</style>
// layout.xml
<RatingBar
android:id="@+id/ratingBar"
style="@style/customRatingBar"
... />
이것은 못생긴 패딩없이 작은 크기로 등급 막대를 줄이기 위해 많은 어려움을 겪은 후의 해결책이었습니다.
<RatingBar
android:id="@+id/listitemrating"
style="@android:attr/ratingBarStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:scaleX=".5"
android:scaleY=".5"
android:transformPivotX="0dp"
android:transformPivotY="0dp"
android:isIndicator="true"
android:max="5" />
등급 막대를 작은 크기로 표시하려면이 코드를 복사하여 프로젝트에 붙여 넣으십시오.
<RatingBar
android:id="@+id/MyRating"
style="?android:attr/ratingBarStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/getRating"
android:isIndicator="true"
android:numStars="5"
android:stepSize="0.1" />
You can set it in the XML code for the RatingBar
, use scaleX
and scaleY
to adjust accordingly. "1.0" would be the normal size, and anything in the ".0" will reduce it, also anything greater than "1.0" will increase it.
<RatingBar
android:id="@+id/ratingBar1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:scaleX="0.5"
android:scaleY="0.5" />
The below snippet worked for me to resize the ratingBar
<RatingBar
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/ratingBar"
style="?android:attr/ratingBarStyleIndicator"
android:scaleX=".5"
android:rating="3.5"
android:scaleY=".5"
android:transformPivotX="0dp"
android:transformPivotY="0dp"
android:max="5"/>
<RatingBar
style="@style/RatingBar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:numStars="5"
android:rating="3.5"
android:stepSize="0.5" />
and add this in your styles xml file
<style name="RatingBar"
parent="android:style/Widget.Material.RatingBar.Small">
<item name="colorControlNormal">@color/primary_light</item>
<item name="colorControlActivated">@color/primary_dark</item>
</style>
This way you dont need to customise ratingBar.
<RatingBar
style="?android:attr/ratingBarStyleIndicator"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
Check my answer here. Best way to achieve it.
<style name="MyRatingBar" parent="@android:style/Widget.RatingBar">
<item name="android:minHeight">15dp</item>
<item name="android:maxHeight">15dp</item>
<item name="colorControlNormal">@color/white</item>
<item name="colorControlActivated">@color/home_add</item>
</style>
and use like
<RatingBar
style="?android:attr/ratingBarStyleIndicator"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:isIndicator="false"
android:max="5"
android:rating="3"
android:scaleX=".8"
android:scaleY=".8"
android:theme="@style/MyRatingBar" />
If you are using Rating bar in Linearlayout with weightSum. Please make sure that you should not assign the layout_weight for rating bar. Instead, that place rating bar inside relative layout and give weight to the relative layout. Make rating bar width wrap content.
<RelativeLayout
android:layout_width="0dp"
android:layout_weight="30"
android:layout_gravity="center"
android:layout_height="wrap_content">
<RatingBar
android:id="@+id/userRating"
style="@style/Widget.AppCompat.RatingBar.Small"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:stepSize="1" />
</RelativeLayout>
If you only need the default style, make sure you have the following width/height, otherwise the numStars could get messed up:
android:layout_width="wrap_content"
android:layout_height="wrap_content"
Using Widget.AppCompat.RatingBar
, you have 2 styles to use; Indicator
and Small
for large and small sizes respectively. See example below.
<RatingBar
android:id="@+id/rating_star_value"
style="@style/Widget.AppCompat.RatingBar.Small"
... />
In RatingBar
give attribute:
style="?android:attr/ratingBarStyleIndicator"
For those who created rating bar programmatically and want set small rating bar instead of default big rating bar
private LinearLayout generateRatingView(float value){ LinearLayout linearLayoutRating=new LinearLayout(getContext()); linearLayoutRating.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.MATCH_PARENT, TableRow.LayoutParams.WRAP_CONTENT)); linearLayoutRating.setGravity(Gravity.CENTER); RatingBar ratingBar = new RatingBar(getContext(),null, android.R.attr.ratingBarStyleSmall); ratingBar.setEnabled(false); ratingBar.setStepSize(Float.parseFloat("0.5"));//for enabling half star ratingBar.setNumStars(5); ratingBar.setRating(value); linearLayoutRating.addView(ratingBar); return linearLayoutRating; }
In the RatingBar
tag, add these two lines
style="@style/Widget.AppCompat.RatingBar.Small"
android:isIndicator="false"
참고URL : https://stackoverflow.com/questions/6153587/how-can-i-decrease-the-size-of-ratingbar
'program tip' 카테고리의 다른 글
Apache HttpClient 4.0에서 SSL 인증서 오류를 무시하는 방법 (0) | 2020.07.24 |
---|---|
Spring Security를 사용하여 Java 코드에서 "hasRole"을 확인하는 방법은 무엇입니까? (0) | 2020.07.24 |
XDebug를 비활성화하는 방법 (0) | 2020.07.24 |
Javascript / jQuery에서 두 숫자를 포함하여 모든 정수의 배열을 만듭니다. (0) | 2020.07.24 |
문자열에서 마지막 쉼표 제거 (0) | 2020.07.24 |