最近、目標達成スケジュールというアプリを作りました。
これを作るにあたり、調べてもなかなか情報が見つからないことがあったので、同じようなところで困っている人のために共有しようと思います。
間違った知識、非効率的な方法を紹介しているかもしれませんが、一時お付き合いください。
#環境
windows10
VisualStudio2019
Xamarin.Android
#コントロールを追加する
まずはコントロールを追加しましょう。
コントロールを追加する方法は、XMLファイルで定義したコントロールをCSファイルで利用する方法とあまり変わりません。
まずレイアウトを作成し、そのレイアウトの中にコントロールを追加します。
var ll = new LinearLayout(this)
{
Orientation = Orientation.Vertical,//縦並びにする
LayoutParameters = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MatchParent, ViewGroup.LayoutParams.MatchParent)
};
var title = new TextView(this)
{
Text = "タイトル",
LayoutParameters = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MatchParent, ViewGroup.LayoutParams.WrapContent)
};
ll.AddView(title);//これでレイアウト内にtitleテキストが表示される
これをSetContentViewの引数に指定するだけです。
LayoutParamsは縦横の大きさを指定します。MatchParentとWrapContent以外にも値を直接指定することができます。自分は常に画面サイズの何分の1を維持したいときなどに使っています。
#コントロールの色を変える
こっちがこの記事のメインです。プログラムからコントロールを追加する方法はググれば簡単に見つかるのですが、探し方が悪かったのか語る必要もないほど常識的なことなのか、色を指定する方法がなかなか見つかりませんでした。同じところで迷っている人がもしいれば、参考にしてください。
var title = new TextView(this)
{
Text = "タイトル",
LayoutParameters = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MatchParent, ViewGroup.LayoutParams.WrapContent)
};
title.SetTextColor(Android.Graphics.Color.Argb(200, 200, 0, 0));//テキストの色
title.SetBackgroundColor(Android.Graphics.Color.Argb(200, 0, 200, 0));//背景の色
ll.AddView(title);
これだけでOKです。