2012年2月19日日曜日

レイアウトの背景の設定・グラデーション・コーナー・背景画像


        <LinearLayout
            android:id="@+id/linearLayout4"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="vertical" 
            android:background="@drawable/buttonstyle4">
        </LinearLayout>

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:state_focused="false" android:state_pressed="false"><layer-list>
            <item>
                <shape
                    xmlns:android="http://schemas.android.com/apk/res/android"
                    android:shape="rectangle">
                    <gradient
                        android:angle="270"
                        android:endColor="#ff0000"
                        android:startColor="#dcdcdc"
                        android:type="linear" />
                    <corners
                        android:radius="4dp" />
                    <stroke
                        android:width="1dp"
                        android:color="#0000ff" />
                    <padding
                        android:bottom="5dp"
                        android:top="5dp" />
                </shape>
                </item>
                <item >
          <bitmap android:src="@drawable/ic_launcher"
           android:gravity="center" />
       </item>
        </layer-list>
    </item>

</selector>

2012年2月18日土曜日

getTextSizeとsetTextSizeのデフォルト単位が違う

 getTextSize で取得した値を、setTextSizeで設定しても大きさが違った。

getTextSizeはピクセル単位、
setTextSizeはSP単位

float size = textView.getTextSize();
textView.setTextSize(TypedValue.COMPLEX_UNIT_PX, size);

TypedValue.COMPLEX_UNIT_PX ・・・ピクセル単位
TypedValue.COMPLEX_UNIT_SP ・・・SP単位
TypedValue.COMPLEX_UNIT_DIP ・・・DIP単位

2012年2月17日金曜日

xmlファイルをレイアウトエディタで開く

パッケージエクスプローラからxmlファイルを選択して、
右クリックして、 アプリケーションから開くを選択する
アンドロイドレイアウトエディターを指定して開く

スクロールビューを上に戻す

final ScrollView scrollView = (ScrollView) findViewById(R.id.scrollView1);
   scrollView.post(new Runnable() {
          public void run() {
           scrollView.fullScroll(ScrollView.FOCUS_UP);
          }
      });

キーイベントを送る

KEYCODE_BACKは問題なく動いたが
public void btnClick(View v) {
 KeyEvent event = new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_BACK );
 dispatchKeyEvent(event);
}

KEYCODE_DPAD_RIGHTとかは動かないので下記のように修正する。
 public void btnClick(View v) {
  new KeyEventSender().execute();
 }
 public class KeyEventSender extends AsyncTask<Object, Object, Object> {
  @Override
  protected Object doInBackground(Object... arg0) {
   // TODO 自動生成されたメソッド・スタブ
   Instrumentation ist = new Instrumentation();
         ist.sendKeyDownUpSync(KeyEvent.KEYCODE_DPAD_RIGHT);
   return null;
  }

 }