当前位置:首页 > 代码 > 正文

安卓手机滚动代码下载(android滚动)[20240429更新]

admin 发布:2024-04-29 11:45 101


今天给各位分享安卓手机滚动代码下载的知识,其中也会对android滚动进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

安卓什么插件可以在手机屏幕上面滚动显示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站长 原创,转载请注明出处和附带本文链接;

本文地址:http://www.ahzz.com.cn/post/817.html


取消回复欢迎 发表评论:

分享到

温馨提示

下载成功了么?或者链接失效了?

联系我们反馈

立即下载