背景をxmlファイルで指定する方法を説明します。
グラデーションをかけたり、ボタンの周りに線を引いたりと、
割と使えます。
イメージ的にはCSS(スタイルシート)のような使い方です。
■事前準備
resフォルダの中のdrawableにxmlファイル
grad_button.xml
text_customer.xml
を作成しておいてください
■サンプル
●メインアクティビティー
package com.example.customlayout; import android.os.Bundle; import android.app.Activity; import android.widget.Button; import android.widget.LinearLayout; import android.widget.TextView; public class MainActivity extends Activity { private int iWC = LinearLayout.LayoutParams.WRAP_CONTENT; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //レイアウトの生成 LinearLayout layout=new LinearLayout(getApplicationContext()); //上から下にオブジェクトを配置するよう設定 layout.setOrientation(LinearLayout.VERTICAL); setContentView(layout); //テキストビューを画面に追加する TextView tv = new TextView(getApplicationContext()); tv.setBackgroundResource(R.drawable.text_customer); tv.setText("テキストだよ"); //画面位置の設定 tv.setLayoutParams(new LinearLayout.LayoutParams(iWC,iWC)); //ボタンを画面に追加する Button oBtn = new Button(getApplicationContext()); oBtn.setBackgroundResource(R.drawable.grad_button); oBtn.setText("ボタンだよ"); oBtn.setLayoutParams(new LinearLayout.LayoutParams(iWC,iWC)); //テキストビューとボタンをレイアウトに追加する layout.addView(tv); layout.addView(oBtn); } }●grad_button.xml
●text_customer.xml
■実行結果
はダサかったので、画像の添付はありません。。。
とりあえず綺麗なグラデーションが掛っているのがわかると思います。
<shape android:shape=~>
これで、背景の形を指定しています。
<shape android:shape="oval"> だえん
<shape android:shape="rectangle"> 四角形
<shape android:shape="line"> 線形
<shape android:shape="ring"> まん丸
また、今回はItemタグはそのまま記載されていますが、
<item android:state_pressed="true" >
とすると、ボタンを押したときのデザインを記載できます。
指定できるパラメータはCSSと同じような感じで、
だいたい上手くいくので、いろいろ試してみてください。
デザイン的なのは全般的に苦手ですし、
実用性も感じないので、いまいちモチベーションが上がらないのですが。。。
デザイン性の高いものはユーザーからの機能性に関する不満も減ると、Androidの講習で有名な方がおっしゃていました。(本当かよ!!)
0 件のコメント:
コメントを投稿