0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Xamarin.Androidで動的に追加したコントロールの文字や背景の色を変える

Posted at

最近、目標達成スケジュールというアプリを作りました。
これを作るにあたり、調べてもなかなか情報が見つからないことがあったので、同じようなところで困っている人のために共有しようと思います。

間違った知識、非効率的な方法を紹介しているかもしれませんが、一時お付き合いください。


#環境
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です。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?