android小说阅读器源码(android怎么修改源码)
本文目录
android怎么修改源码
在Android界面的系统status bar上添加home,back,menu三个菜单,并完成对应的系统功能。并有higlight效果,修改status bar 高度和status bar上的文字尺寸。这需要修改android sdk才能完成,我用的是eclair.下面就我的操作进行叙述。1.首先完成界面显示效果。需要修改文件./frameworks/base/services/java/com/android/server/status/StatusBarPolicy.java,仿照mBatteryIcon等icon的添加方式添加自定义的icon,图片名称指定就好了。另外还要记得修改./frameworks/base/core/res/res/values/arrays.xml,这里定义了icon的slot,并且决定了icon的摆放顺序。这样,你需要的icon按键就可以显示在系统的status bar上面了。2.判断touch event是否按动了某个icon需要修改的文件./frameworks/base/services/java/com/android/server/status/StatusBarView.java首先在onTouchEvent函数中,获取当前event的坐标,然后比较是否在某个按键范围之内。由于系统对于statusBar的范围已经有了定义,所以这里只需要比较横坐标就可以了。其次,也是这一步最关键的,怎么获取具体某一个icon的左右边界坐标呢?系统的status bar左边显示的图标都是notification, 右边显示的是系统icon. 也就是说左边icon属于mNotificationIcons,右边的icon属于mStatusIcons. 在文件StatusBarView.java中出现的offset = getViewOffset(mStatusIcons),得到mStatusIcons的最左边的icon的left横坐标。用N = mStatusIcons.getChildCount()得到共有几个系统icon,其中包含visibility为false的icons.用mStatusIcons.getChildAt(N-i)得到的是从右边数第i个的icon view. 这个view的getLeft()+offset就是这第i个icon的左边横坐标,对应的getRight()+offset就是这第i个icon的右边横坐标。本例中home键是右边第2个icon.3.定义icon响应事件这里使用的方法是在StatusBarView.java中向./frameworks/base/services/java/com/android/server/status/StatusBarPolicy.java发送一个Broadcast,让StatusBarPolicy来完成具体的事件操作。这里需要注意的是不仅要在./frameworks/base/core/java/android/content/Intent.java中定义intent,还要在StatusBarPolicy的构造函数中添加该intent的过滤动作,即filter.addAction(Intent.ACTION_BACKICON_CHANGED).例如,按动了back键,如果当前事件为action_up,就向系统发送一个keyEvent,keyCode为KeyEvent.KEYCODE_BACK. 这里借用的是./frameworks/base/cmds/input/src/com/android/commands/input/Input.java中的sendKeyEvent函数,直接拷贝过来,按照需要稍微修改一下形参就可以了,过程不要修改。需要说明的是,当点击statusBar可以拉出来一个notification列表,当这个列表显示出来的时候,这三个back, menu, home键的响应速度会非常慢,所以这时不响应事件并隐藏这三个键。具体做法是在StatusBarView的onTouchEvent()中判断mService.mExpanded或者 mService.mTracking为真时就不做响应。mService是StatusBarService对象。隐藏三个键也是用Broadcast来做的,但这个intent是由StatusBarServie发出来的,当mExpandedVisible = false时显示,当mExpandedVisible = true时隐藏。这里还同时完成了highlight换图的动作,也是用Broadcast来做得,处理过程一样,就是需要区分action_down和action_up就可以了。4.调整status bar的高度如果你需要显示较大的屏幕尺寸,同时statusBar的高度要拉大,上面的icon的size也需要调大。为了协调一致,显示时间的字体和notification显示的日期的字体也需要调大。具体做法如下:a.调节status bar icon的size: 只调节status_bar.xml的textSize标签似乎不起作用,同时又修改了./base/services/java/com/android/server/status/StatusBarIcon.java的t.setTextSize(32);语句才成功。不知道修改status_bar.xml的《com.android.server.status.AnimatedImageView》标签下的layout_height值是不是必须的,反正我是一起都给改了。b.调节status bar height: ./base/core/res/res/values/dimens.xml 找得我好辛苦!不知道还需不需要修改./base/core/res/res/values/themes.xml中的Window attributes的windowTitleSize值,反正我也给改了。c.调节notification显示日期字体的大小,修改status_bar.xml的《com.android.server.status.DateView》的textSize值。到这里,就完成了所有工作,看看效果吧。
Android本地小说阅读器(仿真、覆盖、滑动翻页,支持大文件)
***隐藏网址***
分享下之前写的小说阅读器,项目结构是传统mvc这样来做,欢迎大家star。
如风小说阅读器,添加书签、目录跳转、(仿真、覆盖、滑动、无)翻页动画效果、日夜间模式、字体/字体大小/主题/亮度设置、本地txt书籍阅读(支持大文件)
android开发,txt文件阅读器将.txt文件分页显示
楼上楼下全是扯淡回答。。。大文本的情况下全部颠覆。。。网上没有一个真正实用有效的阅读器代码。首先,文本分页,U以为想分就分啊?文本多,分了半分钟没分完,用户缩放文本,是从头分页还是从这里分页?从当前位置分页,那往前分页呢?而且,一页的字数,不是定多少就真的那么多:100个换行符和普通字符能一样占一个页面?问题多着呢。
更多文章:
network error什么意思(网页提示“network error”,有什么方法解决)
2024年1月8日 15:40
location是什么意思中文(location是什么意思)
2024年7月24日 04:13
数据恢复大师破解版(谁有DataExplore数据恢复大师注册码或者破解版啊)
2024年7月19日 10:00
dateformat用法(JAVA中SimpleDateFormat所定义的对象的方法都有哪些)
2024年7月2日 14:40
最新win10永久激活方法(Win10正版系统怎么永久激活)
2023年9月25日 12:00
evaluation读音(高考大纲解读及高考复习策略的收获)
2024年6月28日 12:09
android开发简单购物app(开发一个购物类app需要多少钱)
2024年3月17日 10:15
centos7检查存储配置出错(安装centos7出现这个提示,怎么办)
2024年7月21日 10:04
襄阳少儿编程培训机构(卡巴kabba青少儿科技活动中心怎么样)
2024年7月24日 04:49
黑马程序员是哪个公司的(谁能给我详细讲下,北大青鸟,达内,黑马程序员三个IT培训学校的详细信息!包括课程每年的学费)
2024年7月18日 04:32
100个必会的shell命令(linux shell sed命令用法)
2024年7月24日 05:35
当前许可不支持影像服务器(安装solidworks2005时得到不了许可证 许可服务器不支持(-18,147,0)怎么办)
2024年8月12日 06:46
api免费接口(有哪些可免费调用的ocr识别技术API接口)
2024年7月24日 01:13
public函数的用法(vb6.0里“Public”语句如何使用)
2024年6月22日 14:10