• Android ViewPager多页面滑动切换以及动画效果


    从网页:http://www.2cto.com/kf/201208/148253.html这里获取的源代码,新建工程后,出现了很多错误:

    █中文乱码:

    █为已有的工程添加jar包.

    █导入包的时候的选择问题.

    █运行时错误:ANDROID.VIEW.INFLATEEXCEPTION:

    java.lang.RuntimeException: Unable to start activity ComponentInfo{xxx}: android.view.InflateException: Binary XML file line #10: Error inflating class xxx
    (添加jar包方法错误引起)

    █运行时错误:空指针异常.

    java.lang.NullPointerException

    (由于无意义命名引起的资源类型引用错误引起.)
    ============================================

    █中文乱码:

    解决的方法是:

    1)单击乱码的文件,右键选择"Properties",

    2)选择"Resource"选项卡

    3)选择合适的文本文件编码"Text file encoding"(导入工程后,我的是选择 utf-8 后中文显示正常.)

    image

    image

    █为已有的工程添加jar包.

    首先参考了http://blog.csdn.net/angle_rupert/article/details/6233600如下的内容:

    image这样我导入jar文件后就是这样了:

    image 

    █导入包的时候的选择问题.

    由于源码没有给出import部分,所有导入到工程后需要手动导入包,但是在这里有两个包可以导入:

    image

    解决办法:

    1)先备份了工程.

    2)选择导入第二个选项:"android.opengl"

    3)发现随后的下面的两行错误仍然不能消除,便尝试回到1)状态,导入第一个选项"android.graphics"

    此时就正确了.

    █运行时错误:ANDROID.VIEW.INFLATEEXCEPTION:

    首先参考了:http://www.cnblogs.com/pinky878/archive/2012/05/17/2506341.html这里的解释,然后对照自己的,也确实发现了main.xml的问题:

    "The following classes could not be found: android.support.v4.view.ViewPaper.class"

    这是为什么呢?我们已经导入了android-support-v4.jar包,怎么会没有找到这个类呢?

    然后搜索到了发表此文的第一作者的文章:http://www.cnblogs.com/dwinter/archive/2012/02/27/2369590.html

    在文章里,ta的工程项目是这样的:

    image

    注意到这里ta导入的jar包的上级是"Referenced Libraries",但是我们在上面的方法"NEW"一个Libraries,命名的时候却是不让输入空格的,(如果你没有自己动手导入就不能发现这个了.)

    解决的办法是:

    1)将已导入的的jar包从项目里移除:选中"UerLaibrary"(我们上面新建的时候命名的.),然后右键选择"Buid Path"(编译路径) | "Remove from Buid path"(从编译路径中移除)image

    2)直接添加jar包"Add External Archives"而不是"Add Libraries".

    image

    添加完成后就是这样子的:

    image

    此时到main.xml里发现,没有这样的错误提示:

    "The following classes could not be found: android.support.v4.view.ViewPaper.class"

    █运行时错误:空指针异常.

    java.lang.NullPointerException
    eclipse提示没有错误,但是当在模拟器中运行时,出现了错误:

    image

    08-18 19:48:24.253: D/dalvikvm(512): GC_EXPLICIT freed 1178 objects / 80056 bytes in 53ms
    08-18 20:09:24.452: D/AndroidRuntime(569): Shutting down VM
    08-18 20:09:24.452: W/dalvikvm(569): threadid=1: thread exiting with uncaught exception (group=0x4001d800)
    08-18 20:09:24.462: E/AndroidRuntime(569): FATAL EXCEPTION: main
    08-18 20:09:24.462: E/AndroidRuntime(569): java.lang.RuntimeException: Unable to start activity ComponentInfo{edu.cquptzx.TabDemo/edu.cquptzx.TabDemo.MainActivity}: java.lang.NullPointerException
    08-18 20:09:24.462: E/AndroidRuntime(569):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)
    08-18 20:09:24.462: E/AndroidRuntime(569):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
    08-18 20:09:24.462: E/AndroidRuntime(569):     at android.app.ActivityThread.access$2300(ActivityThread.java:125)
    08-18 20:09:24.462: E/AndroidRuntime(569):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
    08-18 20:09:24.462: E/AndroidRuntime(569):     at android.os.Handler.dispatchMessage(Handler.java:99)
    08-18 20:09:24.462: E/AndroidRuntime(569):     at android.os.Looper.loop(Looper.java:123)
    08-18 20:09:24.462: E/AndroidRuntime(569):     at android.app.ActivityThread.main(ActivityThread.java:4627)
    08-18 20:09:24.462: E/AndroidRuntime(569):     at java.lang.reflect.Method.invokeNative(Native Method)
    08-18 20:09:24.462: E/AndroidRuntime(569):     at java.lang.reflect.Method.invoke(Method.java:521)
    08-18 20:09:24.462: E/AndroidRuntime(569):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
    08-18 20:09:24.462: E/AndroidRuntime(569):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
    08-18 20:09:24.462: E/AndroidRuntime(569):     at dalvik.system.NativeStart.main(Native Method)
    08-18 20:09:24.462: E/AndroidRuntime(569): Caused by: java.lang.NullPointerException
    08-18 20:09:24.462: E/AndroidRuntime(569):     at edu.cquptzx.TabDemo.MainActivity.InitImageView(MainActivity.java:76)
    08-18 20:09:24.462: E/AndroidRuntime(569):     at edu.cquptzx.TabDemo.MainActivity.onCreate(MainActivity.java:37)
    08-18 20:09:24.462: E/AndroidRuntime(569):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
    08-18 20:09:24.462: E/AndroidRuntime(569):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
    08-18 20:09:24.462: E/AndroidRuntime(569):     ... 11 more

    定位错误:

    我们知道是

    java.lang.NullPointerException

    空指针异常.
    为什么会是空指针异常呢?

    想起自己在更改源码的时候有一行是这么写的:

    image

    改成了

    image之所以这么修改,是因为作者在给资源命名的时候,使用了无意义的字母命名,我将图片资源误更改为了颜色.(注:图片资源在第一作者源码里,

    image

    然而我依照http://www.2cto.com/kf/201208/148253.html新建的工程,没有使用图片资源.)  

    解决的办法是:

    引用任意一张图片资源即可,这里就直接引用了"ic_launcher"

    bmpW = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher)
                   .getWidth();

    ============================================

    最后,总结下最快捷实现第一作者的效果:

    1.下载第一作者的源码,http://115.com/file/dpi0unyg

    2.导入到工程.

    3.直接添加jar包(包在libs里)

    4部署到模拟器/手机.

    ---------------------------------------------------------

    页面事件测试:

    效果图:

  • 相关阅读:
    123457123456---com.threeObj3.BabyShizi02--- 宝宝识字02
    协议
    123457---com.threeObj.Baobaoshizi01--- 宝宝识字01
    123456---com.twoapp.ErTongNongChangPinTu---儿童农场拼图
    Mysql
    MySQL的四种事务隔离级别
    Git撤销&回滚操作
    java.util.Timer简介
    git常用命令
    BigDecimal转String
  • 原文地址:https://www.cnblogs.com/xilifeng/p/2645783.html
Copyright © 2020-2023  润新知