1

私はグリッドビューを備えたカレンダーを持っているので、カレンダーを小さなブロック (日) で埋めると、次のようになります。

adapter = new GridCellAdapter(getApplicationContext(), R.id.calendar_day_gridcell, month, year);

R.id.calendar_day_gridcell は、xml ファイルで区切られています。

<Button
        android:id="@+id/calendar_day_gridcell"
        android:layout_gravity="center"
        android:textColor="#000000"
        android:background="@drawable/calendar_button_selector"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:layout_width="45dip"
        android:layout_height="45dip">
    </Button>

calendar_button_selector は別の xml ファイルです。

<selector
    xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:state_pressed="true"
        android:drawable="@drawable/calendar_bg_orange" /> <!-- pressed -->
    <item
        android:state_focused="true"
        android:drawable="@drawable/calendar_bg_orange" /> <!-- focused -->
    <item
        android:drawable="@drawable/grid_cell_sajat" /> <!-- default -->
</selector>

grid_cell_sajat には、グラデーションなどを含む形状があります。非常にうまく機能します。これらのことをプログラムで行うにはどうすればよいですか?

 int colorsxx[] = { 0xff393939 , 0xffffffff };

        GradientDrawable g = new GradientDrawable(GradientDrawable.Orientation.BOTTOM_TOP, colorsxx);
        g.setStroke(3, Color.BLACK);
        GradientDrawable g2 = new GradientDrawable(GradientDrawable.Orientation.TOP_BOTTOM, colorsxx);
        g2.setStroke(3, Color.BLACK);
        g.setBounds(10, 10, 10, 10);

        StateListDrawable stld = new StateListDrawable();
       stld.addState(new int[] {-android.R.attr.state_enabled},  g);
       stld.addState(new int[] { android.R.attr.state_pressed }, g2);

adapter = new GridCellAdapter(getApplicationContext(), R.id.calendar_day_gridcell, month, year);

「stld」はドローアブルですが、アダプターは整数を想定しています。アダプターに設定するにはどうすればよいですか、または「整数型」に変換するにはどうすればよいですか?

前もって感謝します!

4

1 に答える 1

0

それが役に立ってよかったので、答えは次のとおりでした:背景として設定してみましたか?ほとんどの (すべての?) ビューで動作するはずです。view.setBackground(R.drawable.calendar_button_selector); の使用 それが機能するには、calendar_button_selector が drawable フォルダーにある必要があると思います。

于 2012-04-10T21:49:12.483 に答える