老司机代码

来源:互联网 发布:淘宝天天乐游戏商城 编辑:程序博客网 时间:2024/06/10 06:23

一、ScrollView中的TextView添加滚动条监听事件(解决滑动监听冲突)

  textView = (TextView) findViewById(R.id.info_desc);  textView.setMovementMethod(ScrollingMovementMethod.getInstance());  textView.setOnTouchListener(new View.OnTouchListener() {            @Override            public boolean onTouch(View v, MotionEvent event) {                // TODO Auto-generated method stub                if(event.getAction()==MotionEvent.ACTION_DOWN){                    //通知父控件不要干扰                    v.getParent().requestDisallowInterceptTouchEvent(true);                }                if(event.getAction()==MotionEvent.ACTION_MOVE){                    //通知父控件不要干扰                    v.getParent().requestDisallowInterceptTouchEvent(true);                }                if(event.getAction()==MotionEvent.ACTION_UP){                    v.getParent().requestDisallowInterceptTouchEvent(false);                }                return false;            }        });

二、ViewPager+banner轮播
http://www.jianshu.com/p/2e577242fe87

三、沉浸式状态栏(状态栏最上面和app颜色一致)

SystemBarTintManagerandroid:fitsSystemWindows="true"android:clipToPadding="true"

//Android4.4 沉浸模式使通知栏和app最上端颜色一致

//透明状态栏getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);//透明导航栏getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {    setTranslucentStatus(true);    SystemBarTintManager mTintManager = new SystemBarTintManager(this);    mTintManager.setStatusBarTintEnabled(true);    mTintManager.setNavigationBarTintEnabled(true);    mTintManager.setTintColor(Color.parseColor("#54AC34"));}

//沉浸式状态栏

private void setTranslucentStatus(boolean on) {        Window win = getWindow();        WindowManager.LayoutParams winParams = win.getAttributes();        final int bits = WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS;        if (on) {            winParams.flags |= bits;        } else {            winParams.flags &= ~bits;        }        win.setAttributes(winParams);    }

//获取导航栏高度

       Class<?> c = null;        Object obj = null;        Field field = null;        int x = 0, sbar = 0;        try {            c = Class.forName("com.android.internal.R$dimen");            obj = c.newInstance();            field = c.getField("status_bar_height");            x = Integer.parseInt(field.get(obj).toString());            sbar = getResources().getDimensionPixelSize(x);            Log.v("TAG", sbar + "");        } catch(Exception e1) {            e1.printStackTrace();        }

软键盘 覆盖屏

android:windowSoftInputMode="stateUnspecified|adjustPan"

向上压缩屏幕内容

android:windowSoftInputMode="adjustResize" 

动态设置hint大小,与textsize不一致

EditText editText = (EditText) rootView.findViewById(R.id.et);// 新建一个可以添加属性的文本对象SpannableString ss = new SpannableString("喝酒就要喝一斤!");// 新建一个属性对象,设置文字的大小AbsoluteSizeSpan ass = new AbsoluteSizeSpan(8,true);// 附加属性到文本ss.setSpan(ass, 0, ss.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);// 设置hinteditText.setHint(new SpannedString(ss)); // 一定要进行转换,否则属性会消失

空格

&#160;

倒计时60秒的button

 public static int count = 60;    private Handler handler = new Handler(){        @Override        public void handleMessage(Message msg) {            super.handleMessage(msg);            button_sendcode.setText("已发送("+msg.what+"秒)");            if(msg.what==0){                button_sendcode.setEnabled(true);                button_sendcode.setText("获取验证码");            }        }    }; public void startCount() {        count=60;        button_sendcode.setEnabled(false);        timer = new Timer();        timerTask = new TimerTask() {            @Override            public void run() {                if (count >= 0) {                    handler.sendEmptyMessage(count);                }                else                {                    timerTask.cancel();                }                count --;            }        };        timer.schedule(timerTask,0, 1000);    }

//弹出alertDialog

 //签收弹框    AlertDialog builder;    private void ifSing(final int index){        builder = new AlertDialog.Builder(MyOrderListQuick.this).                setMessage("是否确认签收").                setPositiveButton("确认", new DialogInterface.OnClickListener() {                    @Override                    public void onClick(DialogInterface dialog, int which) {                        //是否签收                        Sing(index);                        dialog.dismiss();                    }                }).                setNegativeButton("取消", new DialogInterface.OnClickListener() {                    @Override                    public void onClick(DialogInterface dialog, int which) {                        dialog.dismiss();                    }                }).create();        builder.show();        builder.setCanceledOnTouchOutside(false);    }

//密码格式

<android:digits="qwertyuioplkjhgfdsazxcvbnmQWERTYUIOPLKJHGFDSAZXCVBNM1234567890_">

//查看任务栈信息

Terminal中输入:adb shell dumpsys activity activities

//只看activity

adb shell dumpsys activity activities | sed -En -e '/Running activities/,/Run #0/p'

//横竖屏切换不加载oncreate等方法

 android:configChanges="orientation|keyboardHidden|screenSize"

//Android studio ADB启动失败
1.打开cmd,输入adb kill-server,adb start-server,adb nodaemon server
启动不起来是因为adb的端口被占用了
2.输入netstat -aon|findstr “5037”,可以看到进程号为10624的进程(这个进程号因机器和时间而异)在占用5037端口(adb需要使用此端口)
3.打开任务管理器,选择“进程”选项卡,点击选项栏“查看-选择列…”,勾选“PID(进程标识符)”,点确定。会看到每个进程都会显示它们的PID了。找到进程号为10624的进程,结束这个进程。
4.在cmd中,重新adb start-server,会看到成功启动了。
5.重启Android Studio,正常启动完成。

Android studio 配置Android annotation(注解)
http://blog.csdn.net/hanhailong726188/article/details/40585057

小米monkey测试 参数

C:\Users\Administrator>adb shell monkey -v --throttle 300 --pct-touch 30 --pct-motion 20 --pct-nav 20 --pct-majornav 15 --pct-appswitch 5 --pct-anyevent 5 --pct-trackball 0 --pct-syskeys 0 -p com.enlife.store 10000
0 0
原创粉丝点击