LDPI should be 36 x 36.
MDPI should be 48 x 48.
TVDPI should be 64 x 64.
HDPI should be 72 x 72.
XHDPI should be 96 x 96.
XXHDPI should be 144 x 144.
XXXHDPI should be 192 x 192.
2014年9月13日 星期六
【Android】ico size
2013年7月8日 星期一
【Android Note】使用 Spinner 元件
1. 在 res > values > 建立一個 xml 檔案,裡面新增一個string array 的item,取名叫 month
2. 撰寫以下程式碼
public class MainActivity extends Activity {
private Spinner monthSpinner;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
monthSpinner = (Spinner) findViewById(R.id.month);
String[] months = getResources().getStringArray(R.array.month);
ArrayAdapter adapter = new ArrayAdapter(this,android.R.layout.simple_spinner_item,months);
monthSpinner.setAdapter(adapter);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
2. 撰寫以下程式碼
public class MainActivity extends Activity {
private Spinner monthSpinner;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
monthSpinner = (Spinner) findViewById(R.id.month);
String[] months = getResources().getStringArray(R.array.month);
ArrayAdapter
monthSpinner.setAdapter(adapter);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
【Android Note】動態新增元件到 Activity 上
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.activity_main);
mainLinearLayout = new LinearLayout(this);
mainLinearLayout.setOrientation(LinearLayout.VERTICAL);
mainLinearLayout.setPadding(16, 16, 16, 16);
toEditText = new EditText(this);
toEditText.setHint("To");
subjectEditText = new EditText(this);
subjectEditText.setHint("Subject");
messageEditText = new EditText(this);
messageEditText.setHint("Message");
messageEditText.setGravity(Gravity.TOP);
sendButton = new Button(this);
sendButton.setText("Send");
mainLinearLayout.addView(toEditText);
mainLinearLayout.addView(subjectEditText);
mainLinearLayout.addView(messageEditText);
mainLinearLayout.addView(sendButton);
LinearLayout.LayoutParams messageParam =
(LayoutParams) messageEditText.getLayoutParams();
messageParam.weight=1;
messageEditText.setLayoutParams(messageParam);
LinearLayout.LayoutParams buttonParam =
(LayoutParams) sendButton.getLayoutParams();
buttonParam.gravity = Gravity.RIGHT;
buttonParam.width=LayoutParams.WRAP_CONTENT;
sendButton.setLayoutParams(buttonParam);
setContentView(mainLinearLayout);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
super.onCreate(savedInstanceState);
//setContentView(R.layout.activity_main);
mainLinearLayout = new LinearLayout(this);
mainLinearLayout.setOrientation(LinearLayout.VERTICAL);
mainLinearLayout.setPadding(16, 16, 16, 16);
toEditText = new EditText(this);
toEditText.setHint("To");
subjectEditText = new EditText(this);
subjectEditText.setHint("Subject");
messageEditText = new EditText(this);
messageEditText.setHint("Message");
messageEditText.setGravity(Gravity.TOP);
sendButton = new Button(this);
sendButton.setText("Send");
mainLinearLayout.addView(toEditText);
mainLinearLayout.addView(subjectEditText);
mainLinearLayout.addView(messageEditText);
mainLinearLayout.addView(sendButton);
LinearLayout.LayoutParams messageParam =
(LayoutParams) messageEditText.getLayoutParams();
messageParam.weight=1;
messageEditText.setLayoutParams(messageParam);
LinearLayout.LayoutParams buttonParam =
(LayoutParams) sendButton.getLayoutParams();
buttonParam.gravity = Gravity.RIGHT;
buttonParam.width=LayoutParams.WRAP_CONTENT;
sendButton.setLayoutParams(buttonParam);
setContentView(mainLinearLayout);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
2013年7月4日 星期四
【Android Note】使用Button 移動 TextView
1. 先在畫面上放置一個 TextView,以及兩個 Button
需注意 TextView 需有下面兩個屬性才能移動
LinearLayout
需注意 TextView 需有下面兩個屬性才能移動
android:layout_alignParentLeft="true"
android:layout_marginLeft="10dp"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_marginLeft="10dp"
android:text="@string/hello_world" />
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="15dp"
android:layout_marginTop="112dp"
android:text="Left" />
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/button1"
android:layout_alignBottom="@+id/button1"
android:layout_alignParentRight="true"
android:layout_marginRight="63dp"
android:text="Right" />
2.撰寫以下程式碼
package com.example.sampleuicontrol;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.RelativeLayout;
import android.widget.RelativeLayout.LayoutParams;
import android.widget.TextView;
public class MainActivity extends Activity {
private TextView txtView;
private Button btnLeft;
private Button btnRight;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
txtView = (TextView)findViewById(R.id.textView1);
btnLeft = (Button)findViewById(R.id.button1);
btnRight = (Button)findViewById(R.id.button2);
btnLeft.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
//取得 TextView 的Layout,必須注意每種Layout的屬性都不一樣
RelativeLayout.LayoutParams layoutParams = (LayoutParams) txtView.getLayoutParams();
//每次往左移開10dp
layoutParams.leftMargin -=10;
//再把Layout的參數放回 TextView
txtView.setLayoutParams(layoutParams);
}
});
btnRight.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//取得 TextView 的Layout,必須注意每種Layout的屬性都不一樣
RelativeLayout.LayoutParams layoutParams = (LayoutParams) txtView.getLayoutParams();
//每次往左移進10dp
layoutParams.leftMargin +=10;
//再把Layout的參數放回 TextView
txtView.setLayoutParams(layoutParams);
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
3.往左移動沒辦法貼齊 Device 邊界的關係,是因為 xml 有下列參數
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
4. 須注意每種Layout的屬性都不一樣
RelativeLayer
LinearLayout
【Android Note】使用 Button 取得 EditText 的文字內容
1. 在 res > layout > activity_main.xml 檔案中拉出一個 EditText ,一個 Button
2. 在 MainActivity.java 中撰寫以下程式碼
public class MainActivity extends Activity {
private Button btn1; //宣告Button
private EditText txt1; //宣告EditText
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn1 = (Button) findViewById(R.id.button1); //取得Button
txt1 = (EditText) findViewById(R.id.editText1); //取得EditText
btn1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//取得EditText的輸入內容
String content = txt1.getText().toString();
//顯示在Debug Console
Log.d("debug", "button click");
//使用Toast顯示在螢幕上
Toast.makeText(MainActivity.this, content, Toast.LENGTH_SHORT).show();
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
3. 完成後畫面如下
【Android Note】Android DDMS
1 . 點擊下圖中的圖示
2. 加入DDMS
4. 右方的頁籤,常用的幾個
Network Statistics: 可以看出該Device的網路流量
File Explorer: 該 Device 的檔案結構
Emulator Control: 可以模擬經緯度座標
2. 加入DDMS
3. 點到DDMS,可以看到模擬器的相關設定資訊
Network Statistics: 可以看出該Device的網路流量
File Explorer: 該 Device 的檔案結構
Emulator Control: 可以模擬經緯度座標
【Android Note】Android 設定模擬器
1. 在圖示列中,按下方圖示
2. 跳出視窗,按「New」
3. AVD Name:模擬器的名稱
Device: 要模擬的手機型號
Target: Android 版本
4. 如果設定正確,按下「Start」,就會執行了
2013年7月3日 星期三
【Android Note】Android 開發環境
1. 到 http://developer.android.com/sdk/index.html 下載 Android bundle
他會包含Android SDK,以及一些開發環境都會設定好
2.他包含兩個資料夾,以及一個檔案,
主要是用 eclipse 開發,另外有最新的 SDK ,還有一個 SDK Manager,可以隨時更新最新的 SDK
3.在 eclipse 的資料夾中,點開 eclipse.exe 開始開發
4. 第一次打開的時候,會問你 WorkSpace 存放的路徑,找一個想存專案的位置就好了
5. 先確認 SDK 設定的路徑是否正確
Windows > Perference > Android > SDK Location
6. 接下來新增一個專案來試試看!
File > New > Android Application Project
7. 會出現一些對話框要輸入
Application Name: 會出現在 Google Player 的App Name
Project Name: 專案名稱
Package Name: 從大到小取一個 Namaspace,不可和其他人重複,類似網址的意思
接下來都預設,不修改,一直按 Next 完成
8. 最後的畫面會長這樣啦
他會包含Android SDK,以及一些開發環境都會設定好
2.他包含兩個資料夾,以及一個檔案,
主要是用 eclipse 開發,另外有最新的 SDK ,還有一個 SDK Manager,可以隨時更新最新的 SDK
3.在 eclipse 的資料夾中,點開 eclipse.exe 開始開發
4. 第一次打開的時候,會問你 WorkSpace 存放的路徑,找一個想存專案的位置就好了
5. 先確認 SDK 設定的路徑是否正確
Windows > Perference > Android > SDK Location
6. 接下來新增一個專案來試試看!
File > New > Android Application Project
7. 會出現一些對話框要輸入
Application Name: 會出現在 Google Player 的App Name
Project Name: 專案名稱
Package Name: 從大到小取一個 Namaspace,不可和其他人重複,類似網址的意思
接下來都預設,不修改,一直按 Next 完成
8. 最後的畫面會長這樣啦
2013年5月10日 星期五
Android 使用共用的Menu
1. 在 res > menu > activity_menu.xml 定義 menu 項目
2. src > com.example.XXX > 新增一個 Class EX:ActivityWithMenu
import android.app.Activity;
import android.view.Menu;
public class ActivityWithMenu extends Activity {
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
}
3. 在其他的 Class extents Activity 換成 extends ActivityWithMenu
public class MainActivity extends ActivityWithMenu {
2. src > com.example.XXX > 新增一個 Class EX:ActivityWithMenu
import android.app.Activity;
import android.view.Menu;
public class ActivityWithMenu extends Activity {
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
}
3. 在其他的 Class extents Activity 換成 extends ActivityWithMenu
public class MainActivity extends ActivityWithMenu {
2012年12月14日 星期五
Android 取得 EditView 文字

1. 先建立基本的字串對應檔案
2. 在畫面上拉出一個TextView
3. 按右鍵 Edit Text,可選擇到剛剛建立的字串設定檔案
4. 畫面上的控制項會立刻變成剛剛設定的文字
5. 在畫面上拉出以下幾個控制項
private EditText txtUserName;
private Button btnOK;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
txtUserName = (EditText)findViewById(R.id.editText1);
btnOK = (Button)findViewById(R.id.button1);
btnOK.setOnClickListener(new View.OnClickListener(){
public void onClick(View v) {
Toast.makeText(MainActivity.this, txtUserName.getText(), Toast.LENGTH_LONG).show();
}
});
}
2012年10月28日 星期日
Android模擬器變更為中文語系
1. 在 eclipse中,windows > AVD Manager
2. 選擇之前設好的模擬器,按「Start」
3. 按「Launch」
4. 模擬器完全載入後,會顯示以下畫面,感覺有點兒久,接著在那把鎖,用滑鼠往右滑動,就可以解開螢幕了
5. 接著用滑鼠點一下中間那個「設定」按鈕
6. 點選設定進入
7. 點選語言與輸入設定
8.點選語言
9. 這邊就可以修改你要的語言了
2. 選擇之前設好的模擬器,按「Start」
3. 按「Launch」
4. 模擬器完全載入後,會顯示以下畫面,感覺有點兒久,接著在那把鎖,用滑鼠往右滑動,就可以解開螢幕了
5. 接著用滑鼠點一下中間那個「設定」按鈕
6. 點選設定進入
7. 點選語言與輸入設定
8.點選語言
9. 這邊就可以修改你要的語言了
訂閱:
文章 (Atom)























