老司机代码
来源:互联网 发布:淘宝天天乐游戏商城 编辑:程序博客网 时间: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)); // 一定要进行转换,否则属性会消失
空格
 
倒计时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
- 老司机代码
- Django 老司机
- 老司机开车记
- 老司机开车
- 老司机带新手
- FJNU1196 汪老司机
- 老司机链接
- 老司机java
- 老司机漫谈C++
- 小园丁与老司机
- mysql老司机之路
- 老司机谈谈双一流
- 28个JavaScript常用代码集合,前端老司机问你怕不怕!
- 老司机带你30行代码爬糗事百科成人版
- 年薪50W程序员老司机的5大秘籍,提高代码可读性80%
- 老司机总结出21条即学即用经验
- 老司机总结的21条即学即用经验
- 老司机总结21条行车细节
- 小米推送日活突破3亿,获工信部推送认证(付证书照片)
- C++类中的静态成员和静态函数
- html 中表单元素input type="hidden"的作用
- 一张图看懂DNS域名解析全过程
- IOS开发之深拷贝与浅拷贝(mutableCopy与Copy)详解
- 老司机代码
- ios 拦截UIButton的响应方法
- 初学vue.js——学习笔记一
- 图像处理 - 打开图片
- HDU 3790 最短路径问题
- 【POJ】3264 - Balanced Lineup(RMQ - ST算法 || 线段树)
- java instanceof 使用
- 198.leetcode House Robber(easy)[动态规划]
- Python即时网络爬虫项目: 内容提取器的定义(Python2.7版本)