博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
代码小细节
阅读量:6616 次
发布时间:2019-06-24

本文共 4432 字,大约阅读时间需要 14 分钟。

1.

String path = String.format(Contants.NEWS_URL_HOST+Contants.NEWS_TOP_URL,pageIndex);

 将NEWS_URL_HOST+NEWS_TOP_URL组成的网址中d%的值替换为pageIndex

2.OnScrollListener滑动监听中onScroll应设置一个标签返回给onScrollStateChanged用

3.

Runtime.getRuntime().maxMemory();

得到手机最大内存

4.

LruCache
cache = new LruCache
((int) (maxMemory/16)){ @Override protected int sizeOf(String key, Bitmap value) { return value.getByteCount()*value.getHeight();//返回一张图片的字节总数。 }};

返回一张图片的字节总数。

5.

getResources().getDisplayMetrics().widthPixels;

返回屏幕宽度

6.

viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {            @Override            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {                int left = (int) (scroll_line_width*(position+positionOffset));//下划线距离最左边的距离                params.leftMargin = left;                scroll_line.setLayoutParams(params);            }            @Override            public void onPageSelected(int position) {                int out_left = position*scroll_line_width +scroll_line_width/2 -                   getResources().getDisplayMetrics().widthPixels/2;//滑动条左边超出屏幕的距离                scrollView.smoothScrollTo(out_left,0);            }            @Override            public void onPageScrollStateChanged(int state) {            }        });

7.window

// 去掉标题栏(该代码必须在setContentView()前调用)requestWindowFeature(Window.FEATURE_NO_TITLE);setContentView(R.layout.activity_main);window = getWindow();// 去掉状态栏window.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,         WindowManager.LayoutParams.FLAG_FULLSCREEN);

 8.切换横竖屏时如何不销毁当前Activity

 9.隐藏ActionBar

 10.动态设置布局宽和高

LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,1);                txVeiwHolder.imageView.setLayoutParams(params);

 或者

RelativeLayout.LayoutParams params1 = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.MATCH_PARENT);                txVeiwHolder.imageView.setLayoutParams(params1);

 11.使应用程序变成对话框的形式

android :theme="@android:style/Theme.Dialog" 

 12.java代码调用string.xml中的文字可以使用

getActivity().getString(R.string.ts0)

 但是调用颜色的话需要sdk23以上的版本

getActivity().getColor(R.color.colorBack)
getResources().getColor(R.color.my_blue)

 

 13.String s = new String("xyz");创建了几个String Object? 

两个对象,一个是“xyx”,一个是指向“xyx”的引用对象s 

14.viewpager每次切换的时候, 会重新创建当前界面及左右界面三个界面, 每次切换都要重新oncreate, 所以只要设置

viewPager setOffscreenPageLimit(3);

即可避免这个问题。

viewPager.setOffscreenPageLimit(3);表示三个界面之间来回切换都不会重新加载

15.fragment里嵌套viewpager,如何让viewpager滑到最后一页滑不动

viewPager.setOnTouchListener(new View.OnTouchListener() {    @Override    public boolean onTouch(View v, MotionEvent event) {        //让ViewPager的父容器不要拦截滑动事件        viewPager.getParent().requestDisallowInterceptTouchEvent(true);        //这里如果返回true则ViewPager的滑动事件会被屏蔽        return false;    }});//给ListView添加头部,这行代码一定要写在listView.setAdapter(adapter);之前listView.addHeaderView(headerView);

 16.将一个Activity设置成窗口样式

在AndroidManifest.xml中定义Activity的地方一句话

android:theme="@android:style/Theme.Dialog"

android:theme="@android:style/Theme.Translucent"//就变成半透明的

 17.后台的Activity如何在被系统回收之前保存当前状态?

onSaveInstanceState()

 18.android中service的实现方法是

startservice和bindservice

 19.TextView设置为指定的行数

android:lines="2"android:ellipsize="end"

20.登录密码使用MD5加密

MD5.getMD5(old_password).toUpperCase()

 21.alertdialog无法弹出

切记:清单文件中app的风格一定要继承

android:theme="@style/Theme.AppCompat.Light.NoActionBar"

22.代码中调用string.xml中的字符

在Activity中

getString(R.string.resource_name);

或者

getResources().getString(R.string.resource_name);

其他地方

用context上下文

context.getString(R.string.resource_name);

context可以从调用的地方获得,或者 getApplicationContext 用全局的context 

或者用

application.getString(R.string.resource_name);

 23.onActivityResult不执行的原因

activity的启动模式不能为singleTask

 24.圆角按钮

效果图

25.刷新当前activity

调用oncreate()方法即可 

26.去除listview之间的分割线

android:divider="@null"

27.格式化时间

SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");String dateStr = sdf.format(new Date());//最新的时间

 如果不想月和日前面自动补0,只要设置格式为yyyy-M-d即可

 28.

 

android:exported="true"的作用是设置其他应用可以调用该activity

 29.

自定义View中注册广播,需要重写onDetachFromWindow()方法去销毁广播

30.

如果不想控件被父布局遮挡,在根布局设置属性android:clipChildren="false"

31.

如果不想底部导航栏被软键盘顶起来,在清单文件设置 android:windowSoftInputMode="adjustPan"这个属性

32.

迭代开发的时候如何向前兼容新旧接口?

设计服务器接口时,都带版本号:例如1/2、当时间久了以后,旧版本就不维护了

33:

(后缀)逆波兰式

中缀表达式:9+(3-1)*3+10/2

后缀表达式:931-3*+10 2/+

 

转载地址:http://mrhso.baihongyu.com/

你可能感兴趣的文章
嵌入式实时应用开发实战(原书第3版)》——3.3 保护模式架构
查看>>
《Python编程快速上手——让繁琐工作自动化》——1.4 在变量中保存值
查看>>
Git 两分钟指南
查看>>
想改进你的卷积神经网络?看看这14种设计模式!
查看>>
安装完最小化 RHEL/CentOS 7 后需要做的 30 件事情(六)
查看>>
《用Python写网络爬虫》——第1章 网络爬虫简介 1.1 网络爬虫何时有用
查看>>
《Python参考手册(第4版•修订版)》——1.16 模块
查看>>
[LeetCode]--100. Same Tree
查看>>
阿里蒋晓伟谈流计算和批处理引擎Blink,以及Flink和Spark的异同与优势
查看>>
项目经验积累
查看>>
vue mixin的使用
查看>>
<react学习笔记(3)>属性与状态以及组件的生命周期(初始化阶段)
查看>>
H3C防火墙开启路由跟踪
查看>>
新媒体视频导演 - 导演学前班
查看>>
C++ Primer Plus 札记(一) 数组,字符串和string
查看>>
2-8 Linux性能检测
查看>>
Java Socket编程
查看>>
解析Linux环境下RAID 6的Q校验算法
查看>>
struts2 控制判断session 失效
查看>>
Linux基础命令
查看>>