如何在Eclipse編輯區,變更字體大小?
編輯路徑>
Eclipse>Window>Perferences
General>Appearance>Colors and Fonts>Basic>Text Font
按壓Edit,選擇字型以及大小。
2014年12月27日
2014年4月15日
Android Visibility 顯示的三種屬性
Android Visibility 顯示的三種屬性
JAVA CODE
// 先宣告物件, 再設定相關屬性
TextView TestShow;
// 正常顯示
TestShow.setVisibility(View.VISIBLE);
// 一樣佔用畫面該有的大小與位置,只是不顯示出來,僅顯示黑屏畫面
TestShow.setVisibility(View.INVISIBLE);
// 不顯示, 也不佔用畫面大小與位置, 完全隱藏
TestShow.setVisibility(View.GONE);
JAVA CODE
// 先宣告物件, 再設定相關屬性
TextView TestShow;
// 正常顯示
TestShow.setVisibility(View.VISIBLE);
// 一樣佔用畫面該有的大小與位置,只是不顯示出來,僅顯示黑屏畫面
TestShow.setVisibility(View.INVISIBLE);
// 不顯示, 也不佔用畫面大小與位置, 完全隱藏
TestShow.setVisibility(View.GONE);
2014年2月28日
Android onTouch 觸控點
onTouch(View arg0, MotionEvent event)
event.getAction() //獲取觸控動作
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN: // 按下
break;
case MotionEvent.ACTION_MOVE: // 拖曳移動
break;
case MotionEvent.ACTION_UP: //離開
break;
}
event.getPointerCount(); //獲取觸控點的數量,比如2則可能是兩個手指同時按壓螢幕
event.getPointerId(nID); //對於每個觸控的點的細節,我們可以通過一個迴圈執行getPointerId方法獲取索引
event.getX(nID); //獲取第nID個觸控點的x位置
event.getY(nID); //獲取第nID個點觸控的y位置
event.getPressure(nID); //LCD可以感應出使用者的手指壓力,當然具體的級別由驅動和物理硬體決定的
event.getDownTime() //按下開始時間
event.getEventTime() // 事件結束時間
event.getEventTime()-event.getDownTime()); //總共按下時花費時間
SoundPool 音效播放
SoundPool soundPool
soundPool = new SoundPool(1, AudioManager.STREAM_MUSIC, 5);
第一個參數 SoundPool 內總共放置的音效數目。
第二個參數 串流類型。
第三個參數 音效品質,預設為1。
音效檔來源設定
soundPool_ID= soundPool.load(mainActivity, R.raw.music01 , 1);
讀取效果音resource的檔案,檔名記得要小寫並且小於1mb
SoundPool.play(int soundID, float leftVolume, float rightVolume, int priority, int loop, float rate)
soundPool.play(soundPool_ID= , 1.0F, 1.0F, 0, 0, 1.0F);
第一個參數 音效檔來源
第二個參數 左喇叭音量
第三個參數 右喇叭音量
第四個參數 固定用 0
第五個參數 0 為不重複,-1 為無限重複
第六個參數 播放速度,可用 0.5 到 2
SoundPool優點為CPU資源使用率低,反應延遲較少。
用來播放一些短短的音效、急促的效果音很好用。
public void initSounds() {
soundPool = new SoundPool(1, AudioManager.STREAM_MUSIC, 100);
soundPool.setOnLoadCompleteListener(new OnLoadCompleteListener() {
public void onLoadComplete(SoundPool soundPool, int sampleId, int status) {
// TODO Auto-generated method stub
playSound(1,2);
}
});
soundPoolMap = new HashMap<Integer, Integer>();
soundPoolMap.put(1, soundPool.load(getContext(), R.raw.gamestart, 1));
}
public void playSound(int sound, int loop) {
Log.e("WelcomeView", "playSound()");
AudioManager mgr = (AudioManager)getContext().getSystemService(Context.AUDIO_SERVICE);
float streamVolumeCurrent = mgr.getStreamVolume(AudioManager.STREAM_MUSIC);
float streamVolumeMax = mgr.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
float volume = streamVolumeCurrent / streamVolumeMax;
soundPool.play(soundPoolMap.get(sound), volume, volume, 1, loop, 1.0F);
}
soundPool = new SoundPool(1, AudioManager.STREAM_MUSIC, 5);
第一個參數 SoundPool 內總共放置的音效數目。
第二個參數 串流類型。
第三個參數 音效品質,預設為1。
音效檔來源設定
soundPool_ID= soundPool.load(mainActivity, R.raw.music01 , 1);
讀取效果音resource的檔案,檔名記得要小寫並且小於1mb
SoundPool.play(int soundID, float leftVolume, float rightVolume, int priority, int loop, float rate)
soundPool.play(soundPool_ID= , 1.0F, 1.0F, 0, 0, 1.0F);
第一個參數 音效檔來源
第二個參數 左喇叭音量
第三個參數 右喇叭音量
第四個參數 固定用 0
第五個參數 0 為不重複,-1 為無限重複
第六個參數 播放速度,可用 0.5 到 2
SoundPool優點為CPU資源使用率低,反應延遲較少。
用來播放一些短短的音效、急促的效果音很好用。
public void initSounds() {
soundPool = new SoundPool(1, AudioManager.STREAM_MUSIC, 100);
soundPool.setOnLoadCompleteListener(new OnLoadCompleteListener() {
public void onLoadComplete(SoundPool soundPool, int sampleId, int status) {
// TODO Auto-generated method stub
playSound(1,2);
}
});
soundPoolMap = new HashMap<Integer, Integer>();
soundPoolMap.put(1, soundPool.load(getContext(), R.raw.gamestart, 1));
}
public void playSound(int sound, int loop) {
Log.e("WelcomeView", "playSound()");
AudioManager mgr = (AudioManager)getContext().getSystemService(Context.AUDIO_SERVICE);
float streamVolumeCurrent = mgr.getStreamVolume(AudioManager.STREAM_MUSIC);
float streamVolumeMax = mgr.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
float volume = streamVolumeCurrent / streamVolumeMax;
soundPool.play(soundPoolMap.get(sound), volume, volume, 1, loop, 1.0F);
}
2014年2月14日
setRequestedOrientation設定螢幕方向
eclipse Android 設定螢幕方向
模擬器Ctrl+F12切換
Android Code
螢幕的顯示方向會被改變, 要動態修改目前顯示的方向, 可以使用 setRequestedOrientation()
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
setRequestedOrientation參數
系統預設
ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED
鎖定直式
ActivityInfo.SCREEN_ORIENTATION_PORTRAIT
鎖定橫式
ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE
隨使用者當下
ActivityInfo.SCREEN_ORIENTATION_USER
與活動線程下相同的設定
ActivityInfo.SCREEN_ORIENTATION_BEHIND
不隨SENSOR改變
ActivityInfo.SCREEN_ORIENTATION_NOSENSOR
隨SENSOR改變
ActivityInfo.SCREEN_ORIENTATION_SENSOR
模擬器Ctrl+F12切換
Android Code
螢幕的顯示方向會被改變, 要動態修改目前顯示的方向, 可以使用 setRequestedOrientation()
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
setRequestedOrientation參數
系統預設
ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED
鎖定直式
ActivityInfo.SCREEN_ORIENTATION_PORTRAIT
鎖定橫式
ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE
隨使用者當下
ActivityInfo.SCREEN_ORIENTATION_USER
與活動線程下相同的設定
ActivityInfo.SCREEN_ORIENTATION_BEHIND
不隨SENSOR改變
ActivityInfo.SCREEN_ORIENTATION_NOSENSOR
隨SENSOR改變
ActivityInfo.SCREEN_ORIENTATION_SENSOR
2014年2月7日
Android無標題列
xml>
在manifest檔中,在需要的Activity元素中加入屬性:
全屏
<activity android:name=".TextButtonActivity" android:label="@string/app_name"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen">
無標題列
<activity android:name=".TextButtonActivity" android:label="@string/app_name"
android:theme="@android:style/Theme.NoTitleBar">
Android Code>
全屏
getWindow().setFlags(WindowManager.LayoutParams. FLAG_FULLSCREEN ,
WindowManager.LayoutParams. FLAG_FULLSCREEN);
無標題列
requestWindowFeature(Window.FEATURE_NO_TITLE);
在manifest檔中,在需要的Activity元素中加入屬性:
全屏
<activity android:name=".TextButtonActivity" android:label="@string/app_name"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen">
無標題列
<activity android:name=".TextButtonActivity" android:label="@string/app_name"
android:theme="@android:style/Theme.NoTitleBar">
Android Code>
全屏
getWindow().setFlags(WindowManager.LayoutParams. FLAG_FULLSCREEN ,
WindowManager.LayoutParams. FLAG_FULLSCREEN);
無標題列
requestWindowFeature(Window.FEATURE_NO_TITLE);
2014年1月12日
LinearLayout
LinearLayout 線性位置版面配置
XML宣告
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello" />
</LinearLayout>
android:layout_gravity="center"
將LinearLayout中的元件置中對齊
android:orientation
屬性值為"horizontal"(水平),所以元件的排版方式是以水平排版呈現
XML宣告
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello" />
</LinearLayout>
android:layout_gravity="center"
將LinearLayout中的元件置中對齊
android:orientation
屬性值為"horizontal"(水平),所以元件的排版方式是以水平排版呈現
RelativeLayout
RelativeLayout 相對位置版面配置
XML宣告
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" >
</RelativeLayout>
程式碼宣告
RelativeLayout layout;
RelativeLayout.LayoutParams params;
layout = new RelativeLayout(this);
params = new RelativeLayout.LayoutParams(LayoutParams.MATCH_PARENT,
LayoutParams.MATCH_PARENT);
layout.setLayoutParams(params);
XML宣告
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" >
</RelativeLayout>
屬性 | 說明 |
android:layout_width | 該屬性定義元件的寬度 |
android:layout_height | 該屬性定義元件的高度,可使用屬性值同上 |
android:text | 該屬性可設定文字顯示在元件上 |
android:layout_above | 將此元件置於指定元件上方 |
android:layout_below | 將此元件置於指定元件下方 |
android:layout_toLeftOf | 將此元件置於指定元件左方 |
android:layout_toRightOf | 將此元件置於指定元件右方 |
android:layout_alignParentTop | 將此元件對齊於佈局畫面上邊線 |
android:layout_alignParentRight | 將此元件對齊於佈局畫面右邊線 |
android:layout_alignParentLeft | 將此元件對齊於佈局畫面左邊線 |
android:layout_alignParentBottom | 將此元件對齊於佈局畫面底線 |
程式碼宣告
RelativeLayout layout;
RelativeLayout.LayoutParams params;
layout = new RelativeLayout(this);
params = new RelativeLayout.LayoutParams(LayoutParams.MATCH_PARENT,
LayoutParams.MATCH_PARENT);
layout.setLayoutParams(params);
2014年1月5日
Drawable dpi
Drawable
A>drawable (hdpi,mdpi,ldpi)的區別
dpi(dot per inch),每英寸像素數。
四種密度分類:
ldpi (low), normal size 120
mdpi (medium), normal size 160
hdpi (high), normal size 240
xhdpi (extra high)normal size 320
一般情況下的普通屏幕:ldpi是120,mdpi是160,hdpi是240,xhdpi是320。
B>WVGA,HVGA,QVGA的區別
XGA,1024*768
WVGA,768*480
VGA(Video Graphics Array),640*480。
WVGA(Wide VGA),480*800
HVGA(Half VGA)即VGA的一半分辨率為,320*480
QVGA(Quarter VGA)即VGA非四分之一分辨率,240*320
C>資料夾drawable-(hdpi,mdpi,ldpi)和WVGA,HVGA,QVGA
drawable-ldpi,存放如QVGA (240×320)
drawable-mdpi,存放如HVGA (320×480)
drawable-hdpi,存放如WVGA (480×800),FWVGA (480×854)
drawable-xhdpi,存放更高解析度圖片
D>Android系統會根據機器的分辨率來分別到這幾個文件夾裏面去找對應的圖片。
A>drawable (hdpi,mdpi,ldpi)的區別
dpi(dot per inch),每英寸像素數。
四種密度分類:
ldpi (low), normal size 120
mdpi (medium), normal size 160
hdpi (high), normal size 240
xhdpi (extra high)normal size 320
一般情況下的普通屏幕:ldpi是120,mdpi是160,hdpi是240,xhdpi是320。
B>WVGA,HVGA,QVGA的區別
XGA,1024*768
WVGA,768*480
VGA(Video Graphics Array),640*480。
WVGA(Wide VGA),480*800
HVGA(Half VGA)即VGA的一半分辨率為,320*480
QVGA(Quarter VGA)即VGA非四分之一分辨率,240*320
C>資料夾drawable-(hdpi,mdpi,ldpi)和WVGA,HVGA,QVGA
drawable-ldpi,存放如QVGA (240×320)
drawable-mdpi,存放如HVGA (320×480)
drawable-hdpi,存放如WVGA (480×800),FWVGA (480×854)
drawable-xhdpi,存放更高解析度圖片
D>Android系統會根據機器的分辨率來分別到這幾個文件夾裏面去找對應的圖片。
Camera
Camera
在 AndroidManifest.xml 中加上 permission、feature
<uses-permission android:name="android.permission.CAMERA">
<uses-feature android:name="android.hardware.camera">
<uses-feature android:name="android.hardware.camera.autofocus">
Flashlight Control Code
public static Camera camera;
public static Parameters parameters;
camera = Camera.open();
parameters = camera.getParameters();
parameters.setFlashMode(Parameters.FLASH_MODE_TORCH);
camera.setParameters(parameters);
camera.startPreview();
parameters.setFlashMode(Parameters.FLASH_MODE_OFF);
camera.setParameters(parameters);
camera.stopPreview();
camera.release();
在 AndroidManifest.xml 中加上 permission、feature
<uses-permission android:name="android.permission.CAMERA">
<uses-feature android:name="android.hardware.camera">
<uses-feature android:name="android.hardware.camera.autofocus">
Flashlight Control Code
public static Camera camera;
public static Parameters parameters;
camera = Camera.open();
parameters = camera.getParameters();
parameters.setFlashMode(Parameters.FLASH_MODE_TORCH);
camera.setParameters(parameters);
camera.startPreview();
parameters.setFlashMode(Parameters.FLASH_MODE_OFF);
camera.setParameters(parameters);
camera.stopPreview();
camera.release();
ImageButton
ImageButton 自訂義類別
class ImageButtonA extends ImageButton implements OnTouchListener,
OnClickListener, OnFocusChangeListener {
MainActivity mainActivity;
public ImageButtonA(Context context) {
super(context);
mainActivity = (MainActivity) context;
setBackgroundResource(R.drawable.ic_launcher);
//載入圖片
setOnClickListener(this);
setOnFocusChangeListener(this);
setOnTouchListener(this);
}
public boolean onTouch(View v, MotionEvent event) {
return false;
}
public void onClick(View arg0) {
setBackgroundResource(R.drawable.ic_launcher);
}
public void onFocusChange(View arg0, boolean isFocused) {
// TODO Auto-generated method stub
}
}
class ImageButtonA extends ImageButton implements OnTouchListener,
OnClickListener, OnFocusChangeListener {
MainActivity mainActivity;
public ImageButtonA(Context context) {
super(context);
mainActivity = (MainActivity) context;
setBackgroundResource(R.drawable.ic_launcher);
//載入圖片
setOnClickListener(this);
setOnFocusChangeListener(this);
setOnTouchListener(this);
}
public boolean onTouch(View v, MotionEvent event) {
return false;
}
public void onClick(View arg0) {
setBackgroundResource(R.drawable.ic_launcher);
}
public void onFocusChange(View arg0, boolean isFocused) {
// TODO Auto-generated method stub
}
}
2014年1月1日
Bitmap
Bitmap
public Bitmap bollBitmap;
bollBitmap = BitmapFactory.decodeResource(mainActivity.getResources(),
R.drawable.image_0);
STEP 1
將圖檔加入workspace路徑\res\drawable-hdpi下
STEP 2
Refresh Eclipe res檔案
STEP 3
public Bitmap bollBitmap;
bollBitmap = BitmapFactory.decodeResource(mainActivity.getResources(),
R.drawable.image_0);
public Bitmap bollBitmap;
bollBitmap = BitmapFactory.decodeResource(mainActivity.getResources(),
R.drawable.image_0);
STEP 1
將圖檔加入workspace路徑\res\drawable-hdpi下
STEP 2
Refresh Eclipe res檔案
STEP 3
public Bitmap bollBitmap;
bollBitmap = BitmapFactory.decodeResource(mainActivity.getResources(),
R.drawable.image_0);
訂閱:
文章 (Atom)