Android如何实现天天动听2012旧版本里面音乐扫描的功能

安卓2.3系统的手机,通过天天动听下载的歌曲,放在手机内存还是SD卡?_百度知道
安卓2.3系统的手机,通过天天动听下载的歌曲,放在手机内存还是SD卡?
我的手机:索尼爱立信X10iHD问题类型:影音软件,娱乐软件如题!手机是索爱X10,请问安卓2.3系统的手机,通过天天动听下载的歌曲,放在手机内存还是SD卡?如果是放在手机内存,如何移动...
我的手机:索尼爱立信 X10i HD问题类型:影音软件,娱乐软件如题!手机是索爱X10,请问安卓2.3系统的手机,通过天天动听下载的歌曲,放在手机内存还是SD卡?如果是放在手机内存,如何移动到SD卡?我是小白,求详细解答!谢谢!
答题抽奖
首次认真答题后
即可获得3次抽奖机会,100%中奖。
采纳数:53
获赞数:128
擅长:暂未定制
安卓手机通过天天动听下载的歌曲都是存放在SD卡的 安装了天天动听后,第一次启动天天动听会在手机SD卡里生成一个数据文件夹,在这个文件夹的子文件里可以找到下载的歌曲
采纳数:17
获赞数:77
系统默认放在手机内存的把,不过你可以更改,具体在天天动听的设置里边有
采纳数:39
获赞数:40
放在内存卡。放开手机内存的话是读不出来的
采纳数:39
获赞数:1266
在sd卡里,所有下载都是默认下载到sd卡。
还是放在SD卡比较好,如果在机身内存上可以打开文件管理,进入机身内存文件,找到歌曲然后移动到SD卡
最好是放在SD上。。。手机内存都是有限的,手机内存里的东西越少..系统运行的越快...另外要移动需要通过91助手...你可以去91网站上下载一个....里边有详解
其他4条回答
为你推荐:
其他类似问题
您可能关注的内容
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。&&|&&责编:刘菲菲
    安卓版是一款专为Android手机打造的应用,用户完全免费使用。天天动听安卓版沿袭了老版本的高音质、炫视觉,结合Android手机触屏操作的特点,可以为用户提供更好的使用体验。此外,天天动听安卓版还提供迷你歌词,词图丰富,词图匹配成功率非常高,并支持甩歌、铃音自由设置等个性功能。    点击下载:支持Wifi传歌 天天动听安卓版使用教程天天动听安卓版找歌功能    天天动听安卓版的主界面中列出了大部分主要功能,包括我的音乐、我的最爱、随便听听、文件夹、歌手、专辑、下载管理和定制首页。通过顶部的菜单可以切换到淘歌、搜索和推荐。 天天动听安卓版主界面    使用音乐除了听本地歌曲外,还有一个最大的好处就是可以通过客户端直接查找和下载喜欢的歌曲到手机上。    在天天动听中,“淘歌”和“搜索”两个功能都是帮助用户找歌的。不同之处在于,使用搜索找歌是有一定目标的,比如按歌名、按歌手、或按专辑找歌;而淘歌则是在用户没有什么目标的情况下,从海量歌曲中筛选时用到的功能。 天天动听安卓版淘歌功能    在淘歌菜单中,又分为广场、歌单、排行、歌手和MV几大分类,用户可以根据自己的喜好,通过不同的分类查找自己喜欢的歌。 天天动听安卓版淘歌功能    搜索功能刚比较简单,只要在搜索框中输入歌曲名或歌手名,然后点击“搜索”按钮,天天动听就会列出搜索结果了。
提示:支持键盘“← →”键翻页
扫描二维码下载
更新时间:日
用户评分:3.89 | 327 人点评
下载次数:8,165,903
应用平台:android
软件语言:简体中文
4¥4985¥14506¥7507¥28008¥6999¥334910¥4200&&[&& 原创&&]&& 作者:&&|&&责编:刘菲菲
安卓版歌曲    找到喜欢的歌曲后,只要点击列表中的歌曲名,天天动听就会自动开始播放歌曲。不过在线播放并不会直接下载,因此要将歌曲下载到手机本地,以便在没有Wifi网络的情况下播放的话,可以长按歌曲名称,直到弹出下载列表。天天动听中的每首歌曲都为用户提供从64kbps到320kbps共五种品质的下载,用户可以根据自己的喜好进行下载。 天天动听安卓版歌曲下载    要从电脑向手机中传输歌曲时怎么办?可能很多用户此时首先想到的就是利用手机数据线来传输。这种方法虽然简单,但是如果一直找不到数据线就很麻烦了。使用天天动听时,只要开启Wifi传歌,没有数据线也同样可以将电脑中的歌曲传输到手机上。天天动听安卓版Wifi传歌    打开Wifi传歌界面,在电脑中输入界面上给出的IP地址,中就会出现一个传输界面,根据屏幕提示很容易就可以完成歌曲传输了。
提示:支持键盘“← →”键翻页
4¥4985¥14506¥7507¥28008¥6999¥334910¥4200android仿天天动听歌曲自动滚动view
最近项目中要做一个类似天天动听歌曲自动滚动行数的效果。首先自己想了下android要滚动的那就是scroller类或者scrollto、scrollby结合了,或者view.layout()方法,或者使用动画。但是要循环滚动,貌似这些到最后一行滚动到第一行都有往回滚的效果。都不是很好的解决方法。既然这样,那就谷歌下吧。找到一篇文章。看了这篇文章发现,这就和滚动压根没关系,这只是一种滚动的错觉。怎么会忘记了可以绘制事件万物的的canvas呢。好吧,既然找到了,那就用这个方案吧!但是天天动听歌曲还有一个手动滑动的效果,貌似这篇文章没写。既然这样,那就自己来写下吧!oo&&实现之前还是先看下天天动听的效果:
想法1:获取滑动的距离,然后计算滑动了多少行,然后更新数据。实现起来貌似效果不咋地。
想法2:我们可以看的出来他滚动是一行一行的滚动的,只是根据滚动的快慢来决定滚动行数的快慢。既然这样的话,只要滚动了,就一定时间的去一行行的滚动,然后根据滚动的速度来决定更新的间隔时间。
嗯,想好了怎么实现,现在就来写代码吧。
先来写一个类,继承TextView
VerticalScrollTextView.class
public class VerticalScrollTextView extends TextView implements Runnable{
//绘制歌词画笔
private Paint mContentP
//绘制基线画笔
private Paint mLineP
//绘制滑动进度背景画笔
private Paint mRectP
//歌词数据
private List mDataL
private int index = 0 ;
//当前view的宽
private float mX;
//当前view的高
private float mY;
//当前view垂直方向中线
private float middleY;
//行与行之间的间距
private final static int DY = 80 ;
//歌词文字大小
private int mTextSize = 35;
//歌词中间字体的大小
private int mBigTextSize = 45;
//当前是否按下
private boolean isTouch =
//上一次触摸view的y轴坐标
private float mLastY;
//是否正在滑动
private boolean isM
//记录上一次滑动的时间
private long lastMoveT
//滑动速度追踪类
private VelocityTracker mVelocityT
//滑动最大速度
private int mMaximumV
//歌词是否为空
private boolean isE
public VerticalScrollTextView(Context context) {
this(context,null);
public VerticalScrollTextView(Context context, AttributeSet attrs) {
this(context, attrs,0);
public VerticalScrollTextView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
//获取最大的滑动速度值
mMaximumVelocity = ViewConfiguration.get(context)
.getScaledMaximumFlingVelocity();
private void init(){
setFocusable(true);
setClickable(true);
//歌词为空设置默认值
if(mDataList==null){
mDataList = new ArrayList&&();
Sentence sentence = new Sentence(0,&没有获取到歌词&,0);
mDataList.add(sentence);
//初始化歌词画笔
mContentPaint = new Paint();
mContentPaint.setTextSize(mTextSize);
mContentPaint.setAntiAlias(true);
mContentPaint.setColor(Color.parseColor(&#e5e2e2&));
//设置为serif字体
mContentPaint.setTypeface(Typeface.SERIF);
//设置字体为居中
mContentPaint.setTextAlign(Paint.Align.CENTER);
//初始化基线画笔
mLinePaint = new Paint();
mLinePaint.setAntiAlias(true);
mLinePaint.setStrokeWidth(1);
mLinePaint.setColor(Color.WHITE);
//进度背景颜色画笔
mRectPaint = new Paint();
mLinePaint.setAntiAlias(true);
mRectPaint.setColor(Color.parseColor(&#&));
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
//如果当前进度为-1,直接返回,不用绘制
if (index == -1)
Sentence sentence = mDataList.get(index);
//绘制中间行的歌词,设置为高亮白色,大字体
mContentPaint.setColor(Color.WHITE);
mContentPaint.setTextSize(mBigTextSize);
canvas.drawText(sentence.getName(), mX/2, middleY, mContentPaint);
//当前为歌词不为空并且按下的情况下,绘制基线和进度
if(!isEmpty&&isTouch){
//获取中间行字体最高的位置
float baseLine = middleY-Math.abs(mContentPaint.ascent());
//绘制进度背景
canvas.drawRect(10.0f,baseLine-70,150.0f,baseLine,mRectPaint);
//绘制基线
canvas.drawLine(10.0f,baseLine,mX-10,baseLine,mLinePaint);
//设置进度字体大小
mContentPaint.setTextSize(mTextSize);
//绘制进度字体
canvas.drawText(String.valueOf(index),85,baseLine-35,mContentPaint);
//初始化isEmpty
//初始化歌词内容画笔
mContentPaint.setColor(Color.parseColor(&#e5e2e2&));
mContentPaint.setTextSize(mTextSize);
//暂时保存中间线位置,来绘制中间线以上的行数字体
float tempY = middleY;
//绘制中间线以上的歌词
for (int i = index - 1; i &= 0; i--) {
tempY = tempY - DY;
if (tempY & 0) {
Sentence preSentence = mDataList.get(i);
canvas.drawText(preSentence.getName(), mX/2, tempY, mContentPaint);
tempY = middleY;
//绘制中间线以下的歌词
for (int i = index + 1; i & mDataList.size(); i++) {
tempY = tempY + DY;
if (tempY & mY) {
Sentence nexeSentence = mDataList.get(i);
canvas.drawText(nexeSentence.getName(), mX/2, tempY, mContentPaint);
//初始化isMoving,到这里表示滑动结束
isMoving =
protected void onSizeChanged(int w, int h, int ow, int oh) {
super.onSizeChanged(w, h, ow, oh);
//获取view的宽和高
middleY = h * 0.5f;
public long updateIndex(int index) {
if (index == -1)
return -1;
this.index=
public List getDataList() {
return mDataL
public void setDataList(List mDataList){
this.mDataList = mDataL
public void updateUI(){
new Thread(this).start();
public boolean onTouchEvent(MotionEvent event) {
int action = event.getAction();
switch (action){
case MotionEvent.ACTION_DOWN:
mLastY = event.getY();
case MotionEvent.ACTION_MOVE:
//创建速度追踪器
initVelocityTrackerIfNotExists();
mVelocityTracker.addMovement(event);
mVelocityTracker.computeCurrentVelocity(1000, mMaximumVelocity);
//获取当前速度。默认为100
float velocity = mVelocityTracker.getYVelocity()==0?100:mVelocityTracker.getYVelocity();
long currentTime = System.currentTimeMillis();
//设置一个固定值和速度结合决定滑动更新的快慢
if(!isMoving&&tTime-lastMoveTime&20000/Math.abs(velocity)){
isMoving =
lastMoveTime = System.currentTimeMillis();
float currentY = event.getY();
float mMoveY = currentY - mLastY;
//向上滑动-1向下滑动+1
int newIndex = mMoveY&0?index - 1:index+1;
//循环滚动
newIndex=newIndex&0?mDataList.size()-1:newIndex&=mDataList.size()?0:newI
updateIndex(newIndex);
invalidate();
mLastY = currentY;
case MotionEvent.ACTION_UP:
recycleVelocityTracker();
return super.onTouchEvent(event);
public void run() {
//自动滚动刷新的时间间隔
long time = 1000;
//控制进度
while (true) {
//当前不在按下的情况下自动滚动
if(!isTouch){
//设置当前的进度值
long sleeptime = updateIndex(i);
//使用handle刷新ui
mHandler.post(mUpdateResults);
if (sleeptime == -1)
Thread.sleep(time);
//当到了最后一行的时候自动跳转到第一行
if(i==getDataList().size())
} catch (InterruptedException e) {
e.printStackTrace();
Handler mHandler = new Handler();
Runnable mUpdateResults = new Runnable() {
public void run() {
invalidate();
//创建速度追踪器
private void initVelocityTrackerIfNotExists() {
if (mVelocityTracker == null) {
mVelocityTracker = VelocityTracker.obtain();
private void recycleVelocityTracker() {
if (mVelocityTracker != null) {
mVelocityTracker.recycle();
mVelocityTracker =
自定义view基本就是这样了,我们可以把要定义的一些属性写在attrs里面了,这里就懒得写了。大概的思路就是先绘制指定的index行的歌词,然后绘制index上面行的歌词,然后绘制index下面行的歌词。然后新建一个线程,让它通过handle隔一定的时间定时刷新歌词行数。然后在onTouchEvent处理触摸滚动行数,获取到当前滚动速度来决定一个更新的时间间隔。从而实现触摸滚动刷新的快慢。基本上就是这样了。其他的看注释。
再看下初始化数据测试的Activity:
VerticalScrollTextActivity.class
public class VerticalScrollTextActivity extends Activity {
VerticalScrollTextView mSampleV
String[] str = {&你在南方的艳阳里 大雪纷飞&,
&我在北方的寒夜里 四季如春&,
&如果天黑之前来的及&,
&我要忘了你的眼睛&,
&穷极一生 做不完一场梦&,
&他不在和谁谈论相逢的孤岛&,
&因为心里早已荒无人烟&,
&他的心里在装不下一个家&,
&做一个只对自己说谎的哑巴&,
&他说你任何为人称道的美丽&,
&不及他第一次遇见你&,
&时光苟延残喘 无可奈何&,
&如果所有土地连在一起&,
&走上一生只为拥抱你&,
&喝醉了他的梦 晚安&,
&你在南方的艳阳里 大雪纷飞&,
&我在北方的寒夜里 四季如春&,
&如果天黑之前来的及&,
&我要忘了你的眼睛&,
&穷极一生 做不完一场梦&,
&他不在和谁谈论相逢的孤岛&,
&因为心里早已荒无人烟&,
&他的心里在装不下一个家&,
&做一个只对自己说谎的哑巴&,
&他说你任何为人称道的美丽&,
&不及他第一次遇见你&,
&时光苟延残喘 无可奈何&,
&如果所有土地连在一起&,
&走上一生只为拥抱你&,
&喝醉了他的梦 晚安&
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mSampleView = (VerticalScrollTextView) findViewById(R.id.sampleView1);
List lst=new ArrayList&&();
for(int i=0;i
模拟了一首歌词数据,然后setDataList,在调用updateUI()就行了。
最后看下布局文件
activity_main.xml
测试下,我们就可以看到效果了:安卓最好用的音乐播放器 天天动听2.8聆听评测
稿源:泡椒网
天天动听对于绝大多数有一定手机使用经验而且热衷于喜欢用手机听歌的椒友们来说肯定再熟悉不过了。从最初的塞班平台然后发展到现在的iPhone和Android平台受欢迎的程度依旧不减当年,当然没有两把刷子和超乎常人的实力是肯定做不到的。在之前拉拉的同事凌少跟小强也有分别对天天动听进行过一系列的跟踪评测,最近天天动听Android
2.8正式版也已经登陆了,不要问小编到底更新了些什么,不过反正惊喜多多哟。
评测手机:MOTO ME525+ (Defy+)
手机平台:Android 2.3.6
天天动听TTPOD
MUSIC(Android)是一款功能强大、完全免费的音乐播放软件,不仅继承了老牌塞班平台天天动听高音质、超炫视觉、丰富的歌词和歌曲图片下载、皮肤随心更换的超强功能。2.8的更新更是在功能上花足了功夫,绝对能够在最大程度上满足各位听众的耳朵。
椒友们可以通过下载天天动听到自己的手机之中。点击安装完成之后的图标开始运行软件,一幅蓝底白字的LOGO很抢眼的引入眼帘,如果没有扫描添加过歌曲受此进入之后都会提示大家进行扫描添加,这是一个非常人性的设定,用起来会有一种十分温馨的感觉。
一说到音乐播放大部分童鞋肯定都会想到要从本地去添加文音乐文件,这样的想法当然没错。不过许多软件需要手动的寻找目录去查找文件进行添加,对于一些小白用户来说就会显得十分的繁琐,天天动听可以通过手动和自动扫描两种方式来进行音乐的添加,完全做到了让添加音乐也是一种享受。
有好的文章希望站长之家帮助分享推广,猛戳这里
本网页浏览已超过3分钟,点击关闭或灰色背景,即可回到网页}

我要回帖

更多关于 天天动听音乐播放器 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信