Android编程实用小技巧

来源:互联网 发布:洛阳软件培训班 编辑:程序博客网 时间:2024/05/19 15:25

1、密码的显示与隐藏的转换方式

EditText loginEtPwd = ...// 设置EditText的密码为可见的loginEtPwd.setTransformationMethod(HideReturnsTransformationMethod.getInstance());// 设置EditText密码为隐藏的loginEtPwd.setTransformationMethod(PasswordTransformationMethod.getInstance());Editable editable = loginEtPwd.getText();// 将光标设置在文字末尾,如去掉此段则光标会跑到密码前面Selection.setSelection(editable, editable.toString().length());


2、关闭软盘(可以设置在onTouch中点击屏幕关闭软盘)

    // 在Activity的触摸事件中执行关闭软盘操作    @Override    public boolean onTouchEvent(MotionEvent event) {        if (event.getAction() == MotionEvent.ACTION_UP) {            InputMethodManager im = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);            im.hideSoftInputFromWindow(getCurrentFocus().getApplicationWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);        }        return super.onTouchEvent(event);    }


3、单位转换器TypedValue

TypedValue位于android.util.TypedValue,该类提供一个静态的单位转换方法

static float applyDimension(int unit, float value, DisplayMetrics metrics)
可以将其简单的封装做成一个单位转换工具类。如像素px与dp的转化:

TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 50, context.getResources().getDisplayMetrics());


4、判断网络是否连接

private boolean isNetworkAvailable() {ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);if (cm == null) {} else {// 判断网络连接NetworkInfo[] info = cm.getAllNetworkInfo();if (info != null) {for (int i = 0; i < info.length; i++) {if (info[i].getState() == NetworkInfo.State.CONNECTED) {return true;}}}}return false;}

5、如何设置沉浸式状态栏

        设置该特性时android版本必须大于等19才能使用。用法很简单,如下:

        a、设置窗口属性

getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
        b、设置被沉浸控件的xml属性

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:background="#f0ff"    android:orientation="vertical" >    <TextView        android:layout_width="match_parent"        android:layout_height="100dp"        android:background="#f00"        android:clipToPadding="true"        android:fitsSystemWindows="true"        android:text="TextView" /></LinearLayout>

        注意:不同的设置会有不同的效果,只有上面的顺序可以设置同iOS的效果。

设置效果如下图:
















1 0
原创粉丝点击