android技術片斷

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);

 

 

八.虛擬鍵盤彈出時 把頁面內容上移

<activity name="EditContactActivity"
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" />

相關文章
相關標籤/搜索