singwhatiwanna / android-art-res Goto Github PK
View Code? Open in Web Editor NEWthe source code in research art of android development
License: Apache License 2.0
the source code in research art of android development
License: Apache License 2.0
对象存储到本地磁盘必须实现Serializable接口,否则出错
书中146页第3部分写到 ViewGroup如果设置onTouchListener的话,onTouch会屏蔽掉onTouchEvent,这个不是绝对的吧,应该看onTouch的返回值,返回true才会屏蔽掉onTouchEvent。
在第一章中经常看到”可见“和”前台“两个概念。
在部分机型上用Imageloader加载图片有java.io.FileNotFoundException异常,还没有找到原因,但是使用okhttp去下载相同url的图片,能够正常加载出来。
在部分机型上用Imageloader加载图片有java.io.FileNotFoundException异常,还没有找到原因,但是使用okhttp去下载相同url的图片,能够正常加载出来。
请问有AndroidStudio版本吗?
在android24之后,ThreadLocal的存储方式变化了
在实现作者的demo时,遇到如下问题:
退出activity时,未unbindservice会概率性出现如下报错信息:
在ondestroy中,加入unbindservice的处理后,无相关报错信息.
请问这种是情况和考虑是什么呢?可以帮忙解答下么,谢谢.
01-03 12:28:55.450 8840-8840/com.ting.scratch.binderdemo E/ActivityThread: Activity com.ting.scratch.binderdemo.MainActivity has leaked ServiceConnection com.ting.scratch.binderdemo.BinderPool$1@e9a8a7a that was originally bound here
android.app.ServiceConnectionLeaked: Activity com.ting.scratch.binderdemo.MainActivity has leaked ServiceConnection com.ting.scratch.binderdemo.BinderPool$1@e9a8a7a that was originally bound here
at android.app.LoadedApk$ServiceDispatcher.(LoadedApk.java:1376)
at android.app.LoadedApk.getServiceDispatcher(LoadedApk.java:1271)
at android.app.ContextImpl.bindServiceCommon(ContextImpl.java:1462)
at android.app.ContextImpl.bindService(ContextImpl.java:1434)
at android.content.ContextWrapper.bindService(ContextWrapper.java:636)
at com.ting.scratch.binderdemo.BinderPool.connectBinderPoolService(BinderPool.java:69)
at com.ting.scratch.binderdemo.BinderPool.(BinderPool.java:49)
at com.ting.scratch.binderdemo.BinderPool.getInsance(BinderPool.java:56)
at com.ting.scratch.binderdemo.MainActivity$BinderRunnable.run(MainActivity.java:28)
at java.lang.Thread.run(Thread.java:761)
首先感谢主席,《安卓开发艺术探索》非常棒
现在遇到个问题,RemoteView在widget里使用时,我现在要实时旋转一个ImageView,该如何实现呢?
我看到你例子里讲解的是点击
旋转图片用到的是setOnClickPendingIntent
方法,如果实时更新该如何操作呢,谢谢!
文字部分的倒数2行:“如果不是主线程就直接抛出异常中止程序”
应该是 主线程才抛出异常吧?
第三章场景2的代码没有给出
Velocity小节,下面这句有误:
最后,当不需要使用它的时候,需要调用clear方法来重置并回收内存。
这里,只需要调用recycle()
即可。通过源码可以知道,recycle()
中已经调用了clear()
方法。
/**
* Return a VelocityTracker object back to be re-used by others. You must
* not touch the object after calling this function.
*/
public void recycle() {
if (mStrategy == null) {
clear();
sPool.release(this);
}
}
如果View不消耗ACTION_DOWN以外的其他事件,那么这个点击事件会消失,此时父元素的onTouchEvent并不会被调用,并且当前View可以持续收到后续事件,最终这些消失的点击事件会传递给Activity处理。
已经过测试验证。P268 页中提到 View 动画,scale、rotate的pivotX、pivotY轴心点默认都为0,而不是view的中心点。
RotateAnimation 的构造函数
public RotateAnimation(float fromDegrees, float toDegrees) {
mFromDegrees = fromDegrees;
mToDegrees = toDegrees;
// 默认为0.0,也就是view的左上点坐标
mPivotX = 0.0f;
mPivotY = 0.0f;
}
ScaleAnimation 的构造函数
public ScaleAnimation(float fromX, float toX, float fromY, float toY) {
mResources = null;
mFromX = fromX;
mToX = toX;
mFromY = fromY;
mToY = toY;
mPivotX = 0;
mPivotY = 0;
}
通过各种姿势clone都没法完整下载,求个云盘地址,谢谢大佬
大神,关于9.3Service的工作过程中提到了ContextWrapper的设计模式是典型的桥接模式,能不能帮忙分析一下,没看出来是桥接模式
代码麻烦更新下AndroidStudio版本 毕竟升级环境好久了 书也出了好多了 但是代码还是eclipase的 希望作者看到!
书中描述两者关系如下,
public boolean dispatchTouchEvent(MotionEvent ev) {
boolean consume = false;
if (onInterceptTouchEvent(ev)) {
consume = onTouchEvent(ev);
} else {
consume = child.dispatchTouchEvent(ev);
}
return consume;
}
但我在实际开发中,我遇到onInterceptTouchEvent返回false时仍会触发onTouchEvent事件,所以上述两者关系描述错误
当外层是recyleview的时候,item子view使用了HorizontalScrollViewEx外部拦截的时候,recyleview的点击和长按事件没办法响应了。
第八章TestActivity,floatButton随着手指移动的效果移动的位置完全不对
在第三章中介绍滑动冲突时候的第二种类型,的sticky layut 在源码中没有。
第三章事件分发外部拦截的部分在ACTION_DOWN里面有下面的判断:
if (!mScroller.isFinished()) {
mScroller.abortAnimation();
intercepted = true;
}
这个会导致你在切换前后滑动不管怎么滑动都是左右滑,感觉没必要加这个判断吧
如定义权限如下:
<permission
android:name="qingfengmy.developmentofart.provider"
android:protectionLevel="normal" />
定义provider如下:
<provider
android:name="._2activity.ContentProvider.BookProvider"
android:authorities="qingfengmy.developmentofart.bookprovider"
android:exported="true"
android:permission="qingfengmy.developmentofart.provider"
android:process=":provider" />
那么在当前应用的Activity中不需要添加如下权限,也可以调用provider的query方法。
<uses-permission android:name="qingfengmy.developmentofart.provider"/>
尽管Activity和provide不是同一进程,但是同一应用,同一应用就可以忽略provider的permission,是否如此?
原文:一个合理的命令风格可以让读者.... 结合上下文,应该是命名规范
2015年9月第一版
此时需要return;
第2章的内容的其实颇为抽象,建议有相同感受的读者可以试着挪到第11章之后阅读。
任老师,书中130页,倒数第八行开始,“在滑动过程中,mScrollX的值总是等于View左边缘和View内容左边缘在水平方向的距离,而......”,这句话中的“和”如果能改成“或”,个人认为读者会更加清晰明白。
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.