安卓手机滚动代码下载(android滚动)[20240429更新]
admin 发布:2024-04-29 11:45 101
今天给各位分享安卓手机滚动代码下载的知识,其中也会对android滚动进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
- 1、安卓什么插件可以在手机屏幕上面滚动显示txt
- 2、想在android手机屏幕上实现文字的滚动显示
- 3、ipad mini怎么当行车电脑
- 4、安卓系统桌面循环滚动桌面设置的
- 5、安卓系统手机 什么软件可以全屏幕滚动 自己设定的字幕??
安卓什么插件可以在手机屏幕上面滚动显示txt
你好。根据你的描述:
阅读TXT或显示滚动,你可以使用开卷有益app,对于安卓界面来说是一个很好用的插件app。
想在android手机屏幕上实现文字的滚动显示
Animation ani = AnimationUtil.loadAnimation(R.anim.youranime);
yourWidget.startAnimation(ani);
用xml构造animation请自行查看api手册..
ipad mini怎么当行车电脑
教程:(如果你是3G或者4G版的Ipad请忽略)
第一步:确认你的Ipad是越狱的,如果是IOS7越狱那么进入Cydia安装roqyTB7(需要某宝花30大洋代激活),如果你的Ipad是低于ios7系统那么安装roqyBT4(免费)
我是IOS7.1.1所以安装的roqyBT7,激活好了以后可以连接手头可以拿来共享的GPS。
第二步:GPS的选择可以用安卓2.1以上系统的带蓝牙功能的手机,可以到某宝买一个蓝牙GPS,因为老乔当初设计苹果的时候蓝牙是很封闭的,roqyBT这个软件就是拿来连接蓝牙GPS的,这里我将拿三星S3和诺基亚LD-3W蓝牙模块做演示。
打开roqyBT,可以看到已经发现了这两个设备(如果是用手机做GPS,请关掉配置里面的“自动配对”,不然手机端会一直掉线)
如果是拿安卓手机作为GPS那么需要安装一个GPS共享器(附件可下载),安卓系统需要2.1以上,不然没用。安卓端一定要选择使蓝牙可发现这条,两张图分别是打开和连接后的状态(看着手机端滚动的绿色代码,感觉自己那么像黑客了呢)还有WIFI版的共享器,不过不推荐使用,WIFI耗电是蓝牙的2倍以上。这个帖子是一个锋友写的,除了安卓系统手机如何共享GPS,传送门一枚,拿来主义 苹果可以通过蓝牙式热点方式共享网络给ipad,但是仅仅是共享网络 无法共享苹果手机的内置A-GPS来完成定位。这是我测试的结果。越狱的苹果手机可以尝试叫Sharegps Server这个 软件,它的介绍是Share your Iphone's GPS/GLonass with your iPad。我手头没有越狱的苹果手机,没有测试过,我在Cydia里面搜索GPS 有不少于2中软件可以实现共享iPhone的定位系统 .如果想用苹果手机代替GPS,还有待锋友们去摸索。
那么Ipad端口会自动跳转至一下界面,稍微等一下就会有卫星可以出现(这样是不是暴露了我的坐标?会不会有人精确制导我?想想有点小激动啊)
第三步:Ipad按HOME键返回桌面,打开已经安装好的离线版导航随便什么百度、高德都可以瞬间可以定位。把IPAD作为导航就这么轻松愉快的搞定了。
行车电脑教程:(有行车电脑的请忽略)注意:确定你的车子有OBD这个接口一般08年以后生产的车子这个接口就是标配了。
某宝有很多,我用的是这款厂家已经自行开发了安卓版的APK和苹果版的APP(软件这里我就不分享了,自己自行下载,为了防止做广告的嫌疑,图片做了处理)价格有点贵150元左右,不过好处是专业,车子启动自动连接
安卓系统桌面循环滚动桌面设置的
1、手机设置”的“辅助功能”中有选择是否“桌面循环”。
2、在原生的android源码上添加这一功能。
思路:先把界面做出来,再将是否选择的值存到系统的(adb shell进入)data/data/com.android.providers.settings/databases/settings.db数据库中的system表中,
然后在Launch2的源码中取得数据库中是否选择循环桌面来执行相关代码。
先做UI:
在settings源码中的accessibility_settings.xml文件中添加一个checkbox:
java代码
android:key="launch_repeat"
android:title="@string/launch_repeat_title"
android:persistent="false"/
在settings源码的res中添加相关的代码:
在values/string.xml中添加(英文显示):
Launch Repeat
在values-zh-rCN/string.xml中添加(中文显示):
"循环桌面"
在settings源码的AccessibilitySettings.java中的OnCreate中添加:
java代码
/*****************************************/
mLaunchRepeat=(CheckBoxPreference) findPreference(
LAUNCH_REPEAT);
int LaunchRepeat=Settings.System.getInt(this.getContentResolver(),
"launch_repeat",0);//取出是否被选择
if(LaunchRepeat==1)//如果被选择,那么下次打开setting时就勾选
mLaunchRepeat.setChecked(true);
else
mLaunchRepeat.setChecked(false);//如果没被选择,那么下次打开setting时就不勾选
/*****************************************/
当然还要定义几个量:
private final String LAUNCH_REPEAT =
"launch_repeat";
private CheckBoxPreference mLaunchRepeat;
在onPreferenceTreeClick函数中添加:
java代码
//add by xxnan
if(LAUNCH_REPEAT.equals(key))
{
Settings.System.putInt(getContentResolver(),
"launch_repeat",
((CheckBoxPreference) preference).isChecked()?
1:0);//将是否选择存到系统的system表中
}
//add by xxnan
如果做好了之后当点击选择“桌面循环时”可以到(adb shell进入)data/data/com.android.providers.settings/databases下的settings.db数据库(sqlite3 settings.db)的system
表中看到33|launch_repeat|1(select * from system;)。
到这里就完成了将数据存到系统system表中以及UI,接下来就是在Launch2源码中去取这个值(是否循环)。
到Launcher2源码中去找到Workspace.java文件,在里面有相应的修改:
在onTouchEvent中,之前有修改循环,如下:
java代码
case MotionEvent.ACTION_UP:
if (mTouchState == TOUCH_STATE_SCROLLING) {
final VelocityTracker velocityTracker = mVelocityTracker;
velocityTracker.computeCurrentVelocity(1000, mMaximumVelocity);
final int velocityX = (int)
velocityTracker.getXVelocity(mActivePointerId);
final int screenWidth = getWidth();
final int whichScreen = (mScrollX + (screenWidth / 2)) / screenWidth;
final float scrolledPos = (float) mScrollX / screenWidth;
Log.i("velocityX","velocityX="+velocityX+"whichScreen="+whichScreen);
/***********************************************/
//modifided by xxnan
if (velocityX SNAP_VELOCITY) {
// Fling hard enough to move left.
// Don't fling across more than one screen at a time.
Log.i("numscreen","numscreen="+mCurrentScreen);
/* final int bound = scrolledPos whichScreen ?
( (mCurrentScreen+ getChildCount()) - 1 )% getChildCount():
mCurrentScreen;*/
final int bound =( (mCurrentScreen+ getChildCount()) - 1 )% getChildCount()
;
Log.i("numscreen","bound="+bound);
snapToScreen( bound, velocityX, true);
} else if (velocityX -SNAP_VELOCITY ) {
// Fling hard enough to move right
// Don't fling across more than one screen at a time.
/*final int bound = scrolledPos whichScreen ?
( mCurrentScreen + 1 )% getChildCount(): mCurrentScreen;*/
final int bound = ( mCurrentScreen + 1 )% getChildCount() ;
snapToScreen(bound, velocityX, true);
} else {
snapToScreen(whichScreen, 0, true);
}
/***********************************************/
//下面是原生代码
/*if (velocityX SNAP_VELOCITY mCurrentScreen 0) {
// Fling hard enough to move left.
// Don't fling across more than one screen at a time.
final int bound = scrolledPos whichScreen ?
mCurrentScreen - 1 : mCurrentScreen;
snapToScreen(Math.min(whichScreen, bound), velocityX, true);
} else if (velocityX -SNAP_VELOCITY mCurrentScreen
getChildCount() - 1) {
// Fling hard enough to move right
// Don't fling across more than one screen at a time.
final int bound = scrolledPos whichScreen ?
mCurrentScreen + 1 : mCurrentScreen;
snapToScreen(Math.max(whichScreen, bound), velocityX, true);
} else {
snapToScreen(whichScreen, 0, true);
}*/
}
mTouchState = TOUCH_STATE_REST;
mActivePointerId = INVALID_POINTER;
releaseVelocityTracker();
break;
那么就要在修改的地方加一个判断,如果system中取得的值是1,就可以循环,如果是0,就不能。
代码修改如下:
java代码
case MotionEvent.ACTION_UP:
if (mTouchState == TOUCH_STATE_SCROLLING) {
final VelocityTracker velocityTracker = mVelocityTracker;
velocityTracker.computeCurrentVelocity(1000, mMaximumVelocity);
final int velocityX = (int)
velocityTracker.getXVelocity(mActivePointerId);
final int screenWidth = getWidth();
final int whichScreen = (mScrollX + (screenWidth / 2)) / screenWidth;
final float scrolledPos = (float) mScrollX / screenWidth;
Log.i("velocityX","velocityX="+velocityX+"whichScreen="+whichScreen);
/***********************************************/
//modifided by xxnan 2013-1-9
launch_repeat=Settings.System.getInt(mContext.getContentResolver(),
"launch_repeat",0);//取出system表中“launch_repeat”的值
Log.i(" launch_repeat"," launch_repeat="+ launch_repeat);
if(launch_repeat==1)//如果是1,就循环,也就是之前已经改好的
{
if (velocityX SNAP_VELOCITY) {
// Fling hard enough to move left.
// Don't fling across more than one screen at a time.
Log.i("numscreen","numscreen="+mCurrentScreen);
/* final int bound = scrolledPos whichScreen ?
( (mCurrentScreen+ getChildCount()) - 1 )% getChildCount():
mCurrentScreen;*/
final int bound =( (mCurrentScreen+ getChildCount()) - 1 )% getChildCount()
;
Log.i("numscreen","bound="+bound);
snapToScreen( bound, velocityX, true);
} else if (velocityX -SNAP_VELOCITY ) {
// Fling hard enough to move right
// Don't fling across more than one screen at a time.
/*final int bound = scrolledPos whichScreen ?
( mCurrentScreen + 1 )% getChildCount(): mCurrentScreen;*/
final int bound = ( mCurrentScreen + 1 )% getChildCount() ;
snapToScreen(bound, velocityX, true);
} else {
snapToScreen(whichScreen, 0, true);
}
}
else//如果是0,那么就是原生代码,不循环
{
if (velocityX SNAP_VELOCITY mCurrentScreen 0) {
// Fling hard enough to move left.
// Don't fling across more than one screen at a time.
final int bound = scrolledPos whichScreen ?
mCurrentScreen - 1 : mCurrentScreen;
snapToScreen(Math.min(whichScreen, bound), velocityX, true);
} else if (velocityX -SNAP_VELOCITY mCurrentScreen
getChildCount() - 1) {
// Fling hard enough to move right
// Don't fling across more than one screen at a time.
final int bound = scrolledPos whichScreen ?
mCurrentScreen + 1 : mCurrentScreen;
snapToScreen(Math.max(whichScreen, bound), velocityX, true);
} else {
snapToScreen(whichScreen, 0, true);
}
}
/***********************************************/
//下面是原生代码
/*if (velocityX SNAP_VELOCITY mCurrentScreen 0) {
// Fling hard enough to move left.
// Don't fling across more than one screen at a time.
final int bound = scrolledPos whichScreen ?
mCurrentScreen - 1 : mCurrentScreen;
snapToScreen(Math.min(whichScreen, bound), velocityX, true);
} else if (velocityX -SNAP_VELOCITY mCurrentScreen
getChildCount() - 1) {
// Fling hard enough to move right
// Don't fling across more than one screen at a time.
final int bound = scrolledPos whichScreen ?
mCurrentScreen + 1 : mCurrentScreen;
snapToScreen(Math.max(whichScreen, bound), velocityX, true);
} else {
snapToScreen(whichScreen, 0, true);
}*/
}
mTouchState = TOUCH_STATE_REST;
mActivePointerId = INVALID_POINTER;
releaseVelocityTracker();
break;
当然这里面也要定义几个量,以及导入几个包:
导入包:
//add by xxnan
import android.content.ContentResolver;//从system表中取数据
import android.provider.Settings;
定义变量:
private int launch_repeat;//取得是否循环的值
到这里就全部修改好了,还有就是编译一下源码中的package/apps的Launch2和Settings的源码,将生成的out/target/。。。/system/app下的
Launch2.apk和Settings.apk替换手机里system/app的这两个apk就可以了。
安卓系统手机 什么软件可以全屏幕滚动 自己设定的字幕??
音乐的话推荐天天动听,支持滚动字幕,支持桌面字幕(类似于QQ音乐),电子书的话推荐开卷有益,支持全屏滚动字幕
关于安卓手机滚动代码下载和android滚动的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
版权说明:如非注明,本站文章均为 AH站长 原创,转载请注明出处和附带本文链接;
相关推荐
- 05-15手机百度seo怎么优化,百度app如何优化
- 05-14百度账号免费注册,手机注册百度账号 免费
- 05-14手机版百度一下,手机百度2019最新版下载安装
- 05-12手机百度一下百度,手机百度一下没反应呢,咋回事
- 05-11百度下载安装,手机百度下载安装
- 05-07html网页制作软件,html网页制作软件手机版下载
- 05-06滚动导航代码(导航页面代码)[20240506更新]
- 05-06无间隔滚动代码(循环滚动代码)[20240506更新]
- 05-06滚动屏代码(数字滚动屏)[20240506更新]
- 05-06全屏图片上下滚动代码(全屏图片上下滚动代码怎么设置)[20240506更新]
取消回复欢迎 你 发表评论:
- 标签列表
- 最近发表
- 友情链接