zoukankan      html  css  js  c++  java
  • android技术片段

    一。不让程序默认升起IME输入框有两种方法:
    1.让EditText失去焦点,使用EditText的clearFocus方法
    2.强制隐藏Android输入法窗口,在IME类中我们通过实例化输入法控制对象,通过hideSoftInputFromWindow来隐藏IME输入框。

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

     

     

    二。android中要获取屏幕的分辨率,需要用到DisplayMetrics这个类,具体如下:

    //获取屏幕大小
    DisplayMetrics dm = new DisplayMetrics();
    getWindowManager().getDefaultDisplay().getMetrics(dm);
    String str = "屏幕分辨率(单位:像素)为:"
           + dm.widthPixels + " x " + dm.heightPixels;

     

     

     

       //全屏显示
            //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要让文本垂直/水平居中显示,有两种情况需要考虑:

    1、layout_width/layout_height为wrap_content,此时要让TextView在父控件上居中显示,必须设置layout_gravity=”center”。
    2、layout_width/layout_height为fill_parent,此时由于TextView已占据父窗体所有空间,必须设置gravity=”center”。

    android:gravity用来设置TextView的内容对齐方式,android:layout_gravity用来设置TextView在父窗体中的对齐方式。

     

    六半透明背景

    android:background="#b0000000" #e0000000  “#b0000000”

    七。让程序的界面不随机器的重力感应而翻转

    <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
        public void exitProgrames(){
        Intent startMain = new Intent(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" />

     

     



     
     
     

  • 相关阅读:
    安装oracle常见问题和解决方案
    配置VNC
    爬虫
    启动Tomcat报异常host-manager does not exist or is not a readable directory
    linux升级openssl
    linux6的yum源
    linux升级openssh
    linux操作oracle
    Linux 系统结构
    Linux MD5值递归比对目录中的文件是否有修改
  • 原文地址:https://www.cnblogs.com/jiezzy/p/2490399.html
Copyright © 2011-2022 走看看