2

下の画像に示すように、カスタム評価バーを作成する必要があります。

ご覧のとおり、星の代わりにこれらのカラフルな長方形を作成する必要があります。各色は評価を表しています。

ご覧のとおり、現在の定格は 3.5 で、ライト グリーンです。以前の評価は 3.0 で、明るい緑色です。次の評価は 4.0 で、ユーザーがその評価を選択していないためグレーになっています。

どうすればこのようなものを作ることができますか?

ここに画像の説明を入力

4

1 に答える 1

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;
    }
}
于 2014-04-23T13:51:28.517 に答える