Android中的自定义分级栏

Android中的自定义分级栏,android,ratingbar,Android,Ratingbar,我需要定制评级栏,如下图所示 正如你所看到的,我需要制作这些彩色的长方形而不是星星。每种颜色都代表某种等级 如你所见,电流额定值为3.5,呈浅绿色。之前的评级为3.0,浅绿色。下一个等级是4.0,它是灰色的,因为用户没有选择该等级 我怎么能做这样的东西 我使用视图完成了此自定义评级栏。我同意这是一种粗糙的做法,但我相信可以做得更好。你现在可以用它了。如果你需要源代码,一定要告诉我 <LinearLayout android:id="@+id/linearLayout1"

我需要定制评级栏,如下图所示

正如你所看到的,我需要制作这些彩色的长方形而不是星星。每种颜色都代表某种等级

如你所见,电流额定值为3.5,呈浅绿色。之前的评级为3.0,浅绿色。下一个等级是4.0,它是灰色的,因为用户没有选择该等级

我怎么能做这样的东西


我使用视图完成了此自定义评级栏。我同意这是一种粗糙的做法,但我相信可以做得更好。你现在可以用它了。如果你需要源代码,一定要告诉我

<LinearLayout
        android:id="@+id/linearLayout1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:weightSum="17" >

        <View
            android:id="@+id/View01"
            android:layout_width="40dp"
            android:layout_height="40dp"
            android:layout_weight="1"
            android:background="#ff888888"
            android:clickable="true" />

        <Space
            android:layout_width="5dp"
            android:layout_height="40dp"
            android:layout_weight="1" />

        <View
            android:id="@+id/View02"
            android:layout_width="40dp"
            android:layout_height="40dp"
            android:layout_weight="1"
            android:background="#ff888888"
            android:clickable="true" />

        <Space
            android:layout_width="5dp"
            android:layout_height="40dp"
            android:layout_weight="1" />

        <View
            android:id="@+id/View03"
            android:layout_width="40dp"
            android:layout_height="40dp"
            android:layout_weight="1"
            android:background="#ff888888"
            android:clickable="true" />

        <Space
            android:layout_width="5dp"
            android:layout_height="40dp"
            android:layout_weight="1" />

        <View
            android:id="@+id/View04"
            android:layout_width="40dp"
            android:layout_height="40dp"
            android:layout_weight="1"
            android:background="#ff888888"
            android:clickable="true" />

        <Space
            android:layout_width="5dp"
            android:layout_height="40dp"
            android:layout_weight="1" />

        <View
            android:id="@+id/View05"
            android:layout_width="40dp"
            android:layout_height="40dp"
            android:layout_weight="1"
            android:background="#ff888888"
            android:clickable="true" />

        <Space
            android:layout_width="5dp"
            android:layout_height="40dp"
            android:layout_weight="1" />

        <View
            android:id="@+id/View06"
            android:layout_width="40dp"
            android:layout_height="40dp"
            android:layout_weight="1"
            android:background="#ff888888"
            android:clickable="true" />

        <Space
            android:layout_width="5dp"
            android:layout_height="40dp"
            android:layout_weight="1" />

        <View
            android:id="@+id/View07"
            android:layout_width="40dp"
            android:layout_height="40dp"
            android:layout_weight="1"
            android:background="#ff888888"
            android:clickable="true" />

        <Space
            android:layout_width="5dp"
            android:layout_height="40dp"
            android:layout_weight="1" />

        <View
            android:id="@+id/View08"
            android:layout_width="40dp"
            android:layout_height="40dp"
            android:layout_weight="1"
            android:background="#ff888888"
            android:clickable="true" />

        <Space
            android:layout_width="5dp"
            android:layout_height="40dp"
            android:layout_weight="1" />

        <View
            android:id="@+id/View09"
            android:layout_width="40dp"
            android:layout_height="40dp"
            android:layout_weight="1"
            android:background="#ff888888"
            android:clickable="true" />
    </LinearLayout>

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.MainActivity);

        view01 = (View) findViewById(R.id.View01);
    view02 = (View) findViewById(R.id.View02);
    view03 = (View) findViewById(R.id.View03);
    view04 = (View) findViewById(R.id.View04);
    view05 = (View) findViewById(R.id.View05);
    view06 = (View) findViewById(R.id.View06);
    view07 = (View) findViewById(R.id.View07);
    view08 = (View) findViewById(R.id.View08);
    view09 = (View) findViewById(R.id.View09);
    tv = (TextView) findViewById(R.id.textView);

    view01.setOnClickListener(this);
    view02.setOnClickListener(this);
    view03.setOnClickListener(this);
    view04.setOnClickListener(this);
    view05.setOnClickListener(this);
    view06.setOnClickListener(this);
    view07.setOnClickListener(this);
    view08.setOnClickListener(this);
    view09.setOnClickListener(this);
}

@Override
public void onClick(View v) {
    switch (v.getId()) {
    case R.id.View01:
        view01.setBackgroundColor(0xffff0000);
        view02.setBackgroundColor(Color.GRAY);
        view03.setBackgroundColor(Color.GRAY);
        view04.setBackgroundColor(Color.GRAY);
        view05.setBackgroundColor(Color.GRAY);
        view06.setBackgroundColor(Color.GRAY);
        view07.setBackgroundColor(Color.GRAY);
        view08.setBackgroundColor(Color.GRAY);
        view09.setBackgroundColor(Color.GRAY);
        tv.setText("0.5");
        break;
    case R.id.View02:
        view01.setBackgroundColor(0xffff0000);
        view02.setBackgroundColor(0xffff8000);
        view03.setBackgroundColor(Color.GRAY);
        view04.setBackgroundColor(Color.GRAY);
        view05.setBackgroundColor(Color.GRAY);
        view06.setBackgroundColor(Color.GRAY);
        view07.setBackgroundColor(Color.GRAY);
        view08.setBackgroundColor(Color.GRAY);
        view09.setBackgroundColor(Color.GRAY);
        tv.setText("1.0");
        break;
    case R.id.View03:
        view01.setBackgroundColor(0xffff0000);
        view02.setBackgroundColor(0xffff8000);
        view03.setBackgroundColor(0xffffff00);
        view04.setBackgroundColor(Color.GRAY);
        view05.setBackgroundColor(Color.GRAY);
        view06.setBackgroundColor(Color.GRAY);
        view07.setBackgroundColor(Color.GRAY);
        view08.setBackgroundColor(Color.GRAY);
        view09.setBackgroundColor(Color.GRAY);
        tv.setText("1.5");
        break;
    case R.id.View04:
        view01.setBackgroundColor(0xffff0000);
        view02.setBackgroundColor(0xffff8000);
        view03.setBackgroundColor(0xffffff00);
        view04.setBackgroundColor(0xff80ff00);
        view05.setBackgroundColor(Color.GRAY);
        view06.setBackgroundColor(Color.GRAY);
        view07.setBackgroundColor(Color.GRAY);
        view08.setBackgroundColor(Color.GRAY);
        view09.setBackgroundColor(Color.GRAY);
        tv.setText("2.0");
        break;
    case R.id.View05:
        view01.setBackgroundColor(0xffff0000);
        view02.setBackgroundColor(0xffff8000);
        view03.setBackgroundColor(0xffffff00);
        view04.setBackgroundColor(0xff80ff00);
        view05.setBackgroundColor(0xff00ff00);
        view06.setBackgroundColor(Color.GRAY);
        view07.setBackgroundColor(Color.GRAY);
        view08.setBackgroundColor(Color.GRAY);
        view09.setBackgroundColor(Color.GRAY);
        tv.setText("2.5");
        break;
    case R.id.View06:
        view01.setBackgroundColor(0xffff0000);
        view02.setBackgroundColor(0xffff8000);
        view03.setBackgroundColor(0xffffff00);
        view04.setBackgroundColor(0xff80ff00);
        view05.setBackgroundColor(0xff00ff00);
        view06.setBackgroundColor(0xff00ff80);
        view07.setBackgroundColor(Color.GRAY);
        view08.setBackgroundColor(Color.GRAY);
        view09.setBackgroundColor(Color.GRAY);
        tv.setText("3.0");
        break;
    case R.id.View07:
        view01.setBackgroundColor(0xffff0000);
        view02.setBackgroundColor(0xffff8000);
        view03.setBackgroundColor(0xffffff00);
        view04.setBackgroundColor(0xff80ff00);
        view05.setBackgroundColor(0xff00ff00);
        view06.setBackgroundColor(0xff00ff80);
        view07.setBackgroundColor(0xff00ffff);
        view08.setBackgroundColor(Color.GRAY);
        view09.setBackgroundColor(Color.GRAY);
        tv.setText("3.5");
        break;
    case R.id.View08:
        view01.setBackgroundColor(0xffff0000);
        view02.setBackgroundColor(0xffff8000);
        view03.setBackgroundColor(0xffffff00);
        view04.setBackgroundColor(0xff80ff00);
        view05.setBackgroundColor(0xff00ff00);
        view06.setBackgroundColor(0xff00ff80);
        view07.setBackgroundColor(0xff00ffff);
        view08.setBackgroundColor(0xff0080ff);
        view09.setBackgroundColor(Color.GRAY);
        tv.setText("4.0");
        break;
    case R.id.View09:
        view01.setBackgroundColor(0xffff0000);
        view02.setBackgroundColor(0xffff8000);
        view03.setBackgroundColor(0xffffff00);
        view04.setBackgroundColor(0xff80ff00);
        view05.setBackgroundColor(0xff00ff00);
        view06.setBackgroundColor(0xff00ff80);
        view07.setBackgroundColor(0xff00ffff);
        view08.setBackgroundColor(0xff0080ff);
        view09.setBackgroundColor(0xff0000ff);
        tv.setText("4.5");              
        break;
    }
}

@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.MainActivity);
view01=(视图)findViewById(R.id.view01);
view02=(视图)findViewById(R.id.view02);
view03=(视图)findViewById(R.id.view03);
view04=(视图)findViewById(R.id.view04);
view05=(视图)findViewById(R.id.view05);
view06=(视图)findViewById(R.id.view06);
view07=(视图)findViewById(R.id.view07);
view08=(视图)findViewById(R.id.view08);
view09=(视图)findViewById(R.id.view09);
tv=(TextView)findViewById(R.id.TextView);
view01.setOnClickListener(此);
view02.setOnClickListener(此);
view03.setOnClickListener(此);
view04.setOnClickListener(此);
view05.setOnClickListener(此);
view06.setOnClickListener(此);
view07.setOnClickListener(此);
view08.setOnClickListener(此);
view09.setOnClickListener(此);
}
@凌驾
公共void onClick(视图v){
开关(v.getId()){
案例R.id.View01:
view01.setBackgroundColor(0xffff0000);
view02.setBackgroundColor(颜色:灰色);
view03.setBackgroundColor(颜色:灰色);
view04.setBackgroundColor(颜色:灰色);
view05.setBackgroundColor(颜色:灰色);
view06.setBackgroundColor(颜色:灰色);
view07.setBackgroundColor(颜色:灰色);
view08.setBackgroundColor(颜色:灰色);
view09.setBackgroundColor(颜色:灰色);
tv.setText(“0.5”);
打破
案例R.id.View02:
view01.setBackgroundColor(0xffff0000);
view02.setBackgroundColor(0xffff8000);
view03.setBackgroundColor(颜色:灰色);
view04.setBackgroundColor(颜色:灰色);
view05.setBackgroundColor(颜色:灰色);
view06.setBackgroundColor(颜色:灰色);
view07.setBackgroundColor(颜色:灰色);
view08.setBackgroundColor(颜色:灰色);
view09.setBackgroundColor(颜色:灰色);
tv.setText(“1.0”);
打破
案例R.id.View03:
view01.setBackgroundColor(0xffff0000);
view02.setBackgroundColor(0xffff8000);
view03.setBackgroundColor(0xffffff00);
view04.setBackgroundColor(颜色:灰色);
view05.setBackgroundColor(颜色:灰色);
view06.setBackgroundColor(颜色:灰色);
view07.setBackgroundColor(颜色:灰色);
view08.setBackgroundColor(颜色:灰色);
view09.setBackgroundColor(颜色:灰色);
tv.setText(“1.5”);
打破
案例R.id.View04:
view01.setBackgroundColor(0xffff0000);
view02.setBackgroundColor(0xffff8000);
view03.setBackgroundColor(0xffffff00);
view04.setBackgroundColor(0xff80ff00);
view05.setBackgroundColor(颜色:灰色);
view06.setBackgroundColor(颜色:灰色);
view07.setBackgroundColor(颜色:灰色);
view08.setBackgroundColor(颜色:灰色);
view09.setBackgroundColor(颜色:灰色);
tv.setText(“2.0”);
打破
案例R.id.View05:
view01.setBackgroundColor(0xffff0000);
view02.setBackgroundColor(0xffff8000);
view03.setBackgroundColor(0xffffff00);
view04.setBackgroundColor(0xff80ff00);
view05.setBackgroundColor(0xff00ff00);
view06.setBackgroundColor(颜色:灰色);
view07.setBackgroundColor(颜色:灰色);
view08.setBackgroundColor(颜色:灰色);
view09.setBackgroundColor(颜色:灰色);
tv.setText(“2.5”);
打破
案例R.id.View06:
view01.setBackgroundColor(0xffff0000);
view02.setBackgroundColor(0xffff8000);
view03.setBackgroundColor(0xffffff00);
view04.setBackgroundColor(0xff80ff00);
view05.setBackgroundColor(0xff00ff00);
view06.setBackgroundColor(0xff00ff80);
view07.setBackgroundColor(颜色:灰色);
view08.setBackgroundColor(颜色:灰色);
view09.setBackgroundColor(颜色:灰色);
tv.setText(“3.0”);
打破
案例R.id.View07:
view01.setBackgroundColor(0xffff0000);
view02.setBackgroundColor(0xffff8000);
view03.setBackgroundColor(0xffffff00);
view04.setBackgroundColor(0xff80ff00);
view05.setBackgroundColor(0xff00ff00);
view06.setBackgroundColor(0xff00ff80);
view07.setBackgroundColor(0xff00ffff);
view08.setBackgroundColor(颜色:灰色);
view09.setBackgroundColor(颜色:灰色);
tv.setText(“3.5”);
打破
案例R.id.View08:
view01.setBackgroundColor(0xffff0000);
view02.setBackgroundColor(0xffff8000);
view03.setBackgroundColor(0xffffff00);
view04.setBackgroundColor(0xff80ff00);
view05.setBackgroundColor(0xff00ff00);
view06.setBackgroundColor(0xff00ff80);
view07.setBackgroundColor(0xff00ffff);
view08.setBackgroundColor(0xff0080ff);
view09.setBackgroundColor(颜色:灰色);
tv.setText(“4.0”);
打破
案例R.id.View09:
view01.setBackgroundColor(0xffff0000);
view02.setBackgroundColor(0xffff8000);
view03.setBackgroundColor(0xffffff00);
view04.setBackgroundColor(0xff80ff00);
view05.setBackgroundColor(0xff00ff00);