android技術片斷
一。不讓程序默認升起IME輸入框有兩種方法:
1.讓EditText失去焦點,使用EditText的clearFocus方法
2.強制隱藏Android輸入法窗口,在IME類中咱們經過實例化輸入法控制對象,經過hideSoftInputFromWindow來隱藏IME輸入框。 html
Toast.makeText(WindowBackgroundColorActivity.this, "焦點改變", Toast.LENGTH_SHORT).show();
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
//第一種方法
//imm.toggleSoftInput(InputMethodManager.SHOW_IMPLICIT, InputMethodManager.HIDE_NOT_ALWAYS);
//第二種方法
imm.hideSoftInputFromWindow(v.getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS); java
二。android中要獲取屏幕的分辨率,須要用到DisplayMetrics這個類,具體以下: android
//獲取屏幕大小
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
String str = "屏幕分辨率(單位:像素)爲:"
+ dm.widthPixels + " x " + dm.heightPixels; ide
//全屏顯示
//getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
// WindowManager.LayoutParams.FLAG_FULLSCREEN);
//隱藏標題欄
requestWindowFeature(Window.FEATURE_NO_TITLE);
四。popupwindow
showAtLocation(findViewById(R.id.edit_layout), Gravity.BOTTOM,0, 0);
設置彈窗的位置:
第一個參數是彈窗父控件的佈局;
第二個參數是位置如左,右,上部,下部等;
第三個參數是X方向的偏移量;
第四個參數是Y方向的偏移量。
showAtLocation(parent, Gravity.RIGHT | Gravity.BOTTOM, 10,10);
第一個參數指定PopupWindow的錨點view,即依附在哪一個view上。
第二個參數指定起始點爲parent的右下角,第三個參數設置以parent的右下角爲原點,向左、上各偏移10像素。
//將PopupWindow做爲anchor的下拉窗口顯示。即在anchor的左下角顯示
showAsDropDown(anchor);
//xoff,yoff基於anchor的左下角進行偏移。
showAsDropDown(anchor, xoff, yoff); 佈局
五。TextView要讓文本垂直/水平居中顯示,有兩種狀況須要考慮: post
一、layout_width/layout_height爲wrap_content,此時要讓TextView在父控件上居中顯示,必須設置layout_gravity=」center」。
二、layout_width/layout_height爲fill_parent,此時因爲TextView已佔據父窗體全部空間,必須設置gravity=」center」。 this
android:gravity用來設置TextView的內容對齊方式,android:layout_gravity用來設置TextView在父窗體中的對齊方式。 spa
六半透明背景 .net
android:background="#b0000000" #e0000000 「#b0000000」 htm
七。讓程序的界面不隨機器的重力感應而翻轉
<activity android:screenOrientation="portrait"> </activity>
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
RelativeLayout 裏面加上android:clickable="true" RelativLayout就會出如今selector裏面定義的效果。
在文字中加下劃線: textView.getPaint().setFlags(Paint.STRIKE_THRU_TEXT_FLAG);
八.虛擬鍵盤彈出時 把頁面內容上移
android:windowSoftInputMode="stateVisible|adjustResize">
...
</activity>
九:點擊空白處隱藏軟鍵盤
InputMethodManager imm= (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
@Override
public boolean onTouchEvent(MotionEvent event) {
// TODO Auto-generated method stub
if (event.getAction() == MotionEvent.ACTION_DOWN) {
System.out.println("down");
if (RegisterActivity.this.getCurrentFocus() != null) {
if (RegisterActivity.this.getCurrentFocus().getWindowToken() != null) {
imm.hideSoftInputFromWindow(RegisterActivity.this.getCurrentFocus().getWindowToken(),
InputMethodManager.HIDE_NOT_ALWAYS);
}
}
}
return super.onTouchEvent(event);
}
|
十,scrollview+listview的高度自動適應自適應
不少時間咱們在scorllview中嵌入listview的時候,都只能看到listview顯示一行數據,而咱們的要求是顯示多行,即咱們數據的行數,那麼請看下面的代碼:
int totalHeight = 0;//總的高度
for (int i = 0; i < initData(0).size(); i++) { //initData(0).size()數據的行數
View listItem = myAdapter.getView(i, null, list1); //list1,當前listview
listItem.measure(0, 0);
totalHeight += listItem.getMeasuredHeight();
}
ViewGroup.LayoutParams params = list1.getLayoutParams();
params.height = totalHeight
+ (list1.getDividerHeight() * (myAdapter.getCount() - 1));
list1.setLayoutParams(params);
退出應用程序的實現:能夠本身寫個方法,例如:
3
4
5
6
7
8
9
|
publicvoidexitProgrames(){
Intent startMain =newIntent(Intent.ACTION_MAIN);
startMain.addCategory(Intent.CATEGORY_HOME);
startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(startMain);
android.os.Process.killProcess(android.os.Process.myPid());
}
|
須要添加權限:<uses-permission android:name="android.permission.RESTART_PACKAGES" />