如何创建自定义的Andr​​oid评价吧 [英] How to create Custom Ratings bar in Android

查看:113
本文介绍了如何创建自定义的Andr​​oid评价吧的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

您好,我需要在我的应用程序进行评级,所以,我需要创建自定义等级吧......谁能帮助我在这?

Hello all i need to perform Ratings in my application... SO i need to create custom Ratings bar... Can Anyone Help me in this?

推荐答案

看一看这个帖子<一个href="http://kozyr.zydako.net/2010/05/23/$p$ptty-ratingbar/">http://kozyr.zydako.net/2010/05/23/$p$ptty-ratingbar/

修改

看一看定制的评级摩托罗拉<一href="http://community.developer.motorola.com/t5/Android-App-Development-for/custom-rating-bar-style-using-android-s-ratingBar-small-style/td-p/10462">http://community.developer.motorola.com/t5/Android-App-Development-for/custom-rating-bar-style-using-android-s-ratingBar-small-style/td-p/10462

Have a look at custom rating in motorola http://community.developer.motorola.com/t5/Android-App-Development-for/custom-rating-bar-style-using-android-s-ratingBar-small-style/td-p/10462

更新

styles.xml

styles.xml

这必须位于你的价值观的文件夹

This must be located in your values folder

 <?xml version="1.0" encoding="utf-8"?>
  <resources>
    <style name="foodRatingBar" parent="@android:style/Widget.RatingBar">
       <item name="android:progressDrawable">@drawable/food_rating_bar_full</item>
       <item name="android:minHeight">23dip</item>
       <item name="android:maxHeight">25dip</item>
   </style>
  </resources>

food_rating_bar_full.xml

food_rating_bar_full.xml

该文件必须在绘制对象文件夹。

This file must be in Drawable folder.

 <?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/food_ratingbar_full_empty" />
     <item android:id="@+android:id/secondaryProgress"
      android:drawable="@drawable/food_ratingbar_full_empty" />
     <item android:id="@+android:id/progress"
      android:drawable="@drawable/food_ratingbar_full_filled" />
 </layer-list>

food_ratingbar_full_empty.xml

food_ratingbar_full_empty.xml

该文件必须是可绘制文件夹内。

This file must be inside Drawable folder.

<?xml version="1.0" encoding="utf-8"?>

<!-- This is the rating bar drawable that is used to
 show a filled cookie. -->
<selector
xmlns:android="http://schemas.android.com/apk/res/android">

<item android:state_pressed="true"
      android:state_window_focused="true"
      android:drawable="@drawable/cookiee" />

<item android:state_focused="true"
      android:state_window_focused="true"
      android:drawable="@drawable/cookiee" />

<item android:state_selected="true"
      android:state_window_focused="true"
      android:drawable="@drawable/cookiee" />

<item android:drawable="@drawable/cookiee" />

</selector>

food_ratingbar_full_filled.xml

food_ratingbar_full_filled.xml

此文件必须位于可绘制文件夹。

This file must be located in Drawable folder.

<?xml version="1.0" encoding="utf-8"?>

 <!-- This is the rating bar drawable that is used to
 show a unfilled cookie. -->
<selector
xmlns:android="http://schemas.android.com/apk/res/android">

<item android:state_pressed="true"
      android:state_window_focused="true"
      android:drawable="@drawable/cookie" />

<item android:state_focused="true"
      android:state_window_focused="true"
      android:drawable="@drawable/cookie" />

<item android:state_selected="true"
      android:state_window_focused="true"
      android:drawable="@drawable/cookie" />

<item android:drawable="@drawable/cookie" />

</selector>

main.xml中的文件应该是这样的:

main.xml file should look like :

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<RatingBar android:id="@+id/ratingBar1" style="@style/foodRatingBar"     android:layout_width="wrap_content" android:layout_height="wrap_content"></RatingBar>
</LinearLayout>

MainActivity.class应该是这样的:

MainActivity.class should look like :

import android.app.Activity;
import android.os.Bundle;
import android.widget.RatingBar;
import android.widget.RatingBar.OnRatingBarChangeListener;
import android.widget.Toast;

public class MainActivity extends Activity {
/** Called when the activity is first created. */

RatingBar rb;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    rb=(RatingBar)findViewById(R.id.ratingBar1);

    rb.setOnRatingBarChangeListener(new OnRatingBarChangeListener(){

        @Override
        public void onRatingChanged(RatingBar ratingBar, float rating,
                boolean fromUser) {
            // TODO Auto-generated method stub
                Toast.makeText(getApplicationContext(),Float.toString(rating),Toast.LENGTH_LONG).show();

        }

    }); 
}
}

我已经使用了两个图像:

I have used two images:

cookie.jpg

cookie.jpg

cookiee.jpg

cookiee.jpg

此两个图像相同大小的一个用于识别所选评分栏和其他用于识别unselectd的RatingBar

This two images are of same size one is used for identifying selected Rating Bar and other for identifying unselectd RatingBar

这篇关于如何创建自定义的Andr​​oid评价吧的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆