做动画的时候要注意了 ,就是这个动画没有结束的时候不要执行下一个动画。
做自定义控件就是要注意暴力点击的问题。
关联jar包的源代码:
1.先点击Android Dependencies,将它从BuildPath remove掉,
再右键点击jar包,将jar add to BuildPath;
然后就出现Attatch Source按钮了
2.在libs目录下新建一个文件,文件名是jar包全名(包括后缀.jar),然后
该文件名以.properties结尾,新建一行键值对如:
src=jar源代码绝对路径,(不要忘了将单斜线变成双斜线)
ViewPager预加载机制:最多保存3个page,超过的将需要被销毁掉
异常:类明明存在,却报class not found异常解决方法
右键工程,打开bulid path面板,选择Order And Export,
将对应jar打钩
最大是4;
4 -> 4
5 -> 0
6 -> 1
7 -> 2
8 -> 3
好烦360了,真他妈的的中国联通的连不上。日了够了。旁边的苹果一连就可以连上。
我真的很恨360,就是不出来登陆页面。就算是出来也是反应慢的出来。用户体验很差。
奥,我懂了viewpager的adapter. isViewFromObject,意思是是不是原来的view。
viewpager预加载机制。
viewpager最多保存三个。所以不需要viewholder
异常:类明明存在,却报class not found异常解决方法
右键工程,打开bulid path面板,选择Order And Export,
将对应jar打钩
确实在代码里设置View的宽高,用LayoutParamper 去设置。而且layoutparamper很多,需要看你什么布局,采用什么样的layoutparamper.
我懂了那个轮播图怎么弄的了,就是取余数。除以集合的size,比如集合的最后一个是4,但是我们要除以5.因为5的时候应该是第一张。
我终于知道相对布局的好处,好用的地方了。就是relative默认也是从左边覆盖的,这样,就可以做到下拉的popwind的效果。把两个东西包裹起来,然后让他用一定的方式对齐。
线性布局如果想要控制它显示在最右边,可以用权重解决。我知道权重的计算公式是什么了
自己真的过时了,还是12年的Android开发水平。什么高级的东西都没有学。哎,愧对自己。各种炫酷的ui效果自己都没见过。好失败,自己平时还不逛论坛。。。。。今天发现一个好论坛,学习东西的好地方。
http://www.androidchina.net 特别棒。7.0的东西都出来了。
我知道了,其实学习新技术不在于看到就学,就写demo,当然没事干,觉得不错就写。
我觉得没有时间的话,那么你要知道出来了哪些技术,你需要的时候,你可以想到这些最新的技术。
真的,新的技术虽然不难,但是你不关注,你就gg了。人家的app很炫,你的很烂很土。怎么玩。
真的,用了Androidstadio之后就不想用eclipse了。太好用了。
xutils 3
compile 'org.xutils:xutils:3.3.32'
Design Support Library包含8个控件,具体如下:
Widget Name
Description
android.support.design.widget.TextInputLayout
强大带提示的MD风格的EditText
android.support.design.widget.FloatingActionButton
MD风格的圆形按钮,来自于ImageView
android.support.design.widget.Snackbar
类似Toast,添加了简单的单个Action
android.support.design.widget.TabLayout
选项卡
android.support.design.widget.NavigationView
DrawerLayout的SlideMenu
android.support.design.widget.CoordinatorLayout
超级FrameLayout
android.support.design.widget.AppBarLayout
MD风格的滑动Layout
android.support.design.widget.CollapsingToolbarLayout
可折叠MD风格ToolbarLayout
Android stadio
CoordinatorLayout这个控件的作用是让它的子view更好的去协作
妈了个逼得,非要什么在Android6.0上测试,草。模拟器启动不起来。日了够了。还让我用云测云调试去弄。我知道它的原理,但是呢,就是需要网速,网速不好的话,调试很难受。
onViewCreated在onCreateView执行完后立即执行。onCreateView返回的就是fragment要显示的view。
获得 LayoutInflater 实例的三种方式:
1.LayoutInflater inflater = getLayoutInflater(); //调用Activity的getLayoutInflater()
2.LayoutInflater localinflater =(LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
3. LayoutInflater inflater = LayoutInflater.from(context);
今天对Android stadio 项目的部署学了几招。
1.一个工程里面最好要有一个可以运行的项目。不要把所有的项目都删除。因为那样,Android stadio 连编译的小按钮都没有了。最好删除app工程的时候,新建一个别的moudle.
2.有了一个可以运行的module,那么就简单了。 gradle的配置最好和他的一样,什么 v4,v7的jar怎么导入啊,什么build tool的版本啊。
这样很快就可以运行起来。
出道以来,什么都写成字符串常亮。这样,就不会说两边写的不一样出错。
public final static String FIELD_BOOK_FAV="book_is_fav";
public final static String FIELD_BOOK_PROGRESS = "book_progress";
public final static String FIELD_BOOK_MARK_ID = "book_mark_id";
public final static String FIELD_BOOK_MARK_ADD_TIME= "book_mark_add_time";
public final static String FIELD_BOOK_MARK_PROGRESS = "book_mark_progress";
public final static String FIELD_BOOK_MARK_BEGIN_POSITION = "book_mark_begin_position";
public final static String FIELD_BOOK_MARK_DETAIL = "book_mark_detail";
现在我也很聪明了,就是如果一个项目在Android4.4可以运行,但是在6.0代码有的地方报错。那么,就是有些东西被启用了。比如httpclient.
我靠, android:targetSdkVersion加上也报错。
自定义控件 我能textview的源码就是画文字。textview的源码我都看过。他怎么实现的我都知道,所有的都是画出来的。
今天我弄Android stadio 依赖库我知道了:
1.依赖库的application name什么的都要去掉。icon也要,不然编译不过去。
2.依赖库不要有进入界面的activity ,他会抢占主工程的入口。
04-21 15:49:51.682 16402-16402/com.ecloud.reading A/libc: Fatal signal 11 (SIGSEGV) at 0xbe2a8fd8 (code=1), thread 16402 (.ecloud.reading)
又是这句话。
真的,作为一个开发人员,懂得电脑的维护。我终于明白为什么明哥看到不用的东西就删了。确实,电脑委会不好一个月几个月的,就全是垃圾。尤其是桌面,所以,没用的东西要抽点时间去删掉。
winds快捷键也是提高办事效率的一个很重要的因素,怎么快速查看属性呢?
按住“ALT”键双击你要查看的文件,以后配置电脑的path就可以用到了
以后再也不用担心垃圾的uc截不了图了,winds7自带截图工具。
第一次意识到,gradle的 v4,v7配置还和 版本有关系
compile 'com.android.support:appcompat-v7:21.+'compile 'com.android.support:support-v4:21.+'
想想自己,svn,git,svn,git的eclipse。学到很多。懂得很多版本控制的重要性。
现在我知道怎么停掉debug的Android程序了,很简单,进入ddms界面,对着你的进程,kill。
我知道学习的最好的方法是什么了,就是遇到问题一定要知道为什么
我现在已经达到了不百度就可以配置环境变量,配置Android stadio ,配置eclipse。 以及%JAVA_HOME%.
这样的,Android stadio只需要配置一个JAVA_HOME就可以了。大不了再加一个tool.jar。
eclipse 是到bin那个级别。也就是%JAVA_HOME%\bin.
我知道调试的时候,eclipse怎么用了。怎么看一个变量了。就是watch.
debug不就OK了吗,点那看那,选中要看的变量->单击右键->watch对于基本数据类型的SHU标放在变量上面就可以看到值了,对于引用类型,在variable窗口就可以看到变量名,在点击一下就可以看到具体的内容,不过好像只有String类型可以看到值,其它的只能看到地址或是NULL值点watch之后你要看的变量会出现在variable里面.
watch的时候,如果是类加方法,那么方法哪里要加上括号才能够得到结果。
匹配大写字母。
Pattern p = Pattern.compile("\p{Upper}");
Matcher m = p.matcher(resourceName);
光大银行这个项目写的啊,就是不咋地。找不到头绪。某一个activity你找不到它的布局文件,为什么呢,因为他在base里面给弄了。方式是根据当前文件名,也就是类名去加载对应的布局,其实现在看来,很垃圾的,多此一举,而且让后人。。。。。
真的,我最喜欢的就是调试。调试真的很棒,让你明白真想。
Android 开发注意
1.开发所有的东西, 先写base,比如activity,一定要懂得继承的思想。继承可以帮我们少些很多冗余代码。
一定要懂得 面向对象思想。后面可以继承就继承,不可以就不。
我懂得了开发的时候一些事情,比如两个类都要用一个字符串,那么,在某一个类里面写成静态的字符串。字符串只写一边就可以了,而且不会出错。
两个类要传递参数:
1.构造方法
2.方法的参数
3.静态的变量
Androidstadio 太智能了。直接生成布局和清单里面的东西。
原来查看变量,用inspect就行了。
radiogrop 源码我看过,你动态添加radiobutton的话,如果你还包裹一层布局,那么是不行的,radiogroup是不起作用的。你会发现两个都是可以选择的。这时候就要修改一下它的源码。别说我没有看过源码,别说我没有做过自定义控件。
我就喜欢自己的不能将就的写代码。 我写的代码一定是封装的。封装好的。因为我特别不喜欢复制粘贴在写代码这方面。只要是会重复利用的我都会单独提出来。
我知道了Android stadio的一个工程是moudle,还是一个project.就看他没有.setting.只有工程才有.setting。
一年下来,我来总结自己的工具包,总结一个属于自己的框架,就像双击退出,我一分钟就尅搞定,有了这个类。这就是封装。可能会重复利用的都要封装起来。
我靠,原来在运行里面可以直接输入%HOME%,当然,Javahome也可以。
对,搜狗输入法有个好用的地方。输入sj,就会出现2016年5月10日09:20:45。
你可以用String的format函数输出,整数3,想要输出两位用0填充,输出03,就可以像下面这样。
public class FormatTest{ public static void main(String[] args) { int a = 3; System.out.println(String.format("%02d", a)); }}
其实,uihelper也是一个很聪明的。因为,就是代码绝对不会说再重复。、
今天我看到一个uihelper,其实里面就是一些对intent封装,跳转activity的时候,统一调用这里面的方法。恩,封装的很好。所有的所有的跳转只需要在这里写一遍。
别人怎么写的那么好的抽象类?所有的都可以弄到。 就像是basefragment, baselistfragement,..
还有,他们的 网络请求处理写的很好。
git push 地址 只是一个最好用的命令。比clone好用多了。
原来微信支付公众号和app不一样,这么坑。参数不一样。
java.lang.NumberFormatException: Invalid int: "888000000000020"
我日,我说转换成int怎么就不行,超出了int 最大值了。 这都多少位了。
java.lang.NumberFormatException: Invalid int: "888000000000020"
java排序很简单,实现Comparator接口就行了。。
我终于知道瑶瑶缴费这个项目的不足了,就是单线程。这个事情做不完,下一件就不会去做。这个框架导致瑶瑶缴费很卡。退出来那个对话框在做事情就会。。。。卡死。
east explore eclipse 插件,打开文件路径。
判断是不是正确的jason,不能直接就上来就解析。尤其是使用gjson.怪不的会有第三方的json呢。我的瑶瑶缴费,在联通的往下面,直接挂了。因为那个是需要登陆的网页。不管你怎么请求都会给你发一个登陆页。这个页面就会把你干掉。
网络请求,用户点击取消了,他并没有取消,结果什么都用不了。网络请求还是单线程的。日。
1.适配也就两件事。
图片, 文字。 也就是 dimens控制字体的大小。
android:paddingTop="@dimen/activity_vertical_margin"
也可以控制边距什么的。
判断是不是正确的jason,不能直接就上来就解析。尤其是使用gjson.怪不的会有第三方的json呢。
终于直接接口的好处了和用处了。接口不是用来直接让你实现的。那多没意思。根本不会傻逼的,写一个接口,然后去实现。那多没意思啊。接口就是回调的时候,很好用。继承就不好实现回调了。就接口就可以。你传给我的是一个你实现接口的实现类,然后,你传给我之后,我调用里面的方法。你见过,直接传一个类的吗。传类我怎么保证你必须有我要调用的方法呢。
完美刷机真的很硬。刷板砖都能刷回来。其实,不用那个我也能刷,只不过我没有找到资源,比如奥丁的资源。完美刷机,你一切弄好之后,就可以去睡觉了。。
说的什么缓存,还自己写缓存,不就是找个地方放吗?说的牛逼一点就做缓存,实质上是map,或者其他的什么存起来而已。妈的,原来其实都很简单。xutils框架的实现方式我都知道。其实就是一个astask ,里面调用了你的接口里面的doinUI,或者onFailed。接口嘛,我懂。
还有,别抱怨说什么,我写了好多的Handler,去处理发的消息。那是你没有总结框架的能力,高手,中级工程师应该是一个东西,我就写一遍,我就他妈写一个遍。全部都能用。接口可以就是,业务处理逻辑多变的情况下,也就是,只要是逻辑容易变,都写成接口。现在我觉得,写个interface,写个imple,一点都不浪费时间。
不就是一个记住站点。。FlashFXP 一个小软件我还搞不了你了?哼,百度一直查不到,我决定自己弄弄,很轻松,随便点点,多点点。ok了。
真的,太棒了。自己现在。又学了一招,太实用的一招。就是直接从Android stadio直接一个网址,把git的项目弄过来。这样,自己学习就快了。
自定义的控件其实就那样。不就是自定义属性,得到属性的值,赋值。重写onMeasure,onDraw.没什么了。
如果你不想要v7 , 可以创建项目时候选择都是一样的sdk 版本
sb了,原来企业邮箱可以和QQ邮箱绑定以后,来回切换。
原来thinkpad可以调F1,,f2,直接Fn加 esc.
妈的,程序里面post请求,我用fddlitr,结果post后台接收不到参数。get可以接收到参数。
终于懂了面向接口编程,全都是借口。穿的参数都是借口,回头你可以根据需求传借口的实现类。mvp让我知道了什么是面向接口编程。
adb shell下如何退出系统,谢谢了
。。。不管是什么shell 或者client端记住几个关键词吧……exitbyequit
录制手机屏幕命令:
adb shell screenrecord /sdcard/XXX.mp4
什么三级缓存啊,垃圾,猛一听挺高大上的,但是不就是lrucache,dislrucache,网络?
Class<?> 相当于 Class<? extends Object>?是个通配符,可以用任何由Object派生的类型代替如果Class<? extends Student>则要求?用任何由Student派生或间接派生的类型代替
原来emnu必须要;号
我明白为什么杨涛说话开会都那么快了,就是别人说什么,一听就明白。就不用往下说了。能力,思维的体现。杨涛跟我一样。
今天我看到瑶瑶缴费布局,就有一个表格一样的东西,一看就知道用权重,但是,最后一行只有三个,怎么办?我想到用百分比,但是网上找不到。后来看瑶瑶缴费写的,写了一个同样的布局,也就是最后一行也是四个。但是让最后一个隐藏掉。这样,就做到了。不就是一个invisiable.
我还理解了一个权重的好处。就是不确定性。比如中间会有滚动文字,也可能没有,那布局的时候,宽高用权重写,这样就算没有了,布局也不会变形。还是3:7;