hi 问几个android开发的问题

问题描述

hi 问几个问题1. 如果在ProgressBar上显示数字,是否原生支持2. 我有个下载的业务 在一个Activity中点下载的同时可以在另外一个Activity中显示现在进度:我直接诶在Activity中new Thread来作的,这样好不好的,一般时用什么方法作? 这样性能是否过得去看我红色标题部分,我是通过Thread while true, 3. 我在已下载完毕的文件图标上放个勾勾,这个是图片合成作的,还是用android提供的工具做的?/** * */package com.alibaba.cloudspace;import java.util.ArrayList;import java.util.List;import android.app.TabActivity;import android.content.Intent;import android.graphics.Color;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.util.Log;import android.view.GestureDetector;import android.view.Gravity;import android.view.LayoutInflater;import android.view.Menu;import android.view.MenuItem;import android.view.MotionEvent;import android.widget.ListView;import android.widget.TabHost;import android.widget.TextView;import android.widget.TabHost.OnTabChangeListener;public class TransStatusActivity extends TabActivity implements OnTabChangeListener { private GestureDetector gestureDetector; private UpdateProgressBarHandler progressBarHandler; private UpdateDownloadFilesHandler downloadFilesHandler; private ProgressBarListAdapter adapter = null; private DownloadCompleteListAdapter downloadCompleteAdapter = null; private ListView listView = null; private ListView listView2 = null; private TabHost transTabhost; private final String[] TAB_IDS = new String[] { "TRANS_TAB1", "TRANS_TAB2" }; private static FileMap DOWNLOAD_FILES = new FileMap(); private String email = ""; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // TODO Get email. // email = getIntent().getExtras().getString(""); gestureDetector = new GestureDetector(this, new CLGestureDetector(this)); transTabhost = this.getTabHost(); LayoutInflater.from(this).inflate(R.layout.trans_status, transTabhost.getTabContentView(), true); transTabhost.addTab(transTabhost.newTabSpec(TAB_IDS[0]).setIndicator( createTabTextView(R.string.app_text_transfer)).setContent(R.id.transfer_tab)); transTabhost.addTab(transTabhost.newTabSpec(TAB_IDS[1]).setIndicator( createTabTextView(R.string.app_text_transfer_finish)).setContent( R.id.transfer_finish_tab)); // TODO 载入未完成的下载列表 progressBarHandler = new UpdateProgressBarHandler(); downloadFilesHandler = new UpdateDownloadFilesHandler(); adapter = new ProgressBarListAdapter(this, getTransStatusList()); listView = (ListView) findViewById(R.id.trans_status_list); listView.setAdapter(adapter); [color=red][b] new UpdateProgressBarThread().start(); new UpdateDownloadFileListThread().start();[/b][/color] downloadCompleteAdapter = new DownloadCompleteListAdapter(this, DOWNLOAD_FILES.get(email)); listView2 = (ListView) findViewById(R.id.download_complete_list); listView2.setAdapter(downloadCompleteAdapter); transTabhost.setOnTabChangedListener(this); }。。。。 private List<TransStatus> getTransStatusList() { List<TransStatus> transStatus = new ArrayList<TransStatus>(); for (int i = 0; i < FileListActivity.downloading.size(); i++) { FileDownloaderTask t = FileListActivity.downloading.get(i); if (t.isCompleted()) { DOWNLOAD_FILES.add(email, t.getFile()); downloadFilesHandler.sendMessage(new Message()); FileListActivity.downloading.remove(i--); continue; } TransStatus s = new TransStatus(); s.setFid(t.getFile().getNodeId()); s.setTitle(t.getFile().getFileName()); s.setPercent(t.getPercent()); Log.d("DEBUG-TRANS-STATUS", "Percent:" + s.getPercent() + ", has read:" + t.getHasReadSize() + ", full size:" + t.getFile().getFullSize()); transStatus.add(s); } return transStatus; } class UpdateProgressBarThread extends Thread { public void run() { while (true) { Message msg = new Message(); try { Thread.sleep(100); } catch (InterruptedException e) { } progressBarHandler.sendMessage(msg); int i = 0; for (FileDownloaderTask f : FileListActivity.downloading) { if (f.isCompleted()) i++; } Log.e("", "Completed:" + i + ", downloading size:" + FileListActivity.downloading.size()); if (i >= FileListActivity.downloading.size()) break; } }; } class UpdateDownloadFileListThread extends Thread { public void run() { Message msg = new Message(); try { Thread.sleep(100); } catch (InterruptedException e) { } downloadFilesHandler.sendMessage(msg); }; } class UpdateProgressBarHandler extends Handler { @Override public void handleMessage(Message msg) { adapter = new ProgressBarListAdapter(TransStatusActivity.this, getTransStatusList()); listView = (ListView) findViewById(R.id.trans_status_list); listView.setAdapter(adapter); } } class UpdateDownloadFilesHandler extends Handler { @Override public void handleMessage(Message msg) { downloadCompleteAdapter = new DownloadCompleteListAdapter(TransStatusActivity.this, DOWNLOAD_FILES.get(email)); listView2 = (ListView) findViewById(R.id.download_complete_list); listView2.setAdapter(downloadCompleteAdapter); } } @Override public void onTabChanged(String tabId) { } private TextView createTabTextView(int rid) { TextView txtTabInfo = new TextView(this); txtTabInfo.setText(getResources().getString(rid)); txtTabInfo.setPadding(0, 5, 0, 0); txtTabInfo.setTextSize(11); txtTabInfo.setBackgroundResource(R.drawable.tab_normal); txtTabInfo.setTextColor(Color.DKGRAY); txtTabInfo.setGravity(Gravity.CENTER); txtTabInfo.setHeight(39); return txtTabInfo; }}

解决方案

1. Progress Bar 是不带数字显示的2. 最好不要直接使用 new Thread 来完成下载,建议你使用 AsyncTask 去实现3. 没看到你的效果图,不知道你是指什么?但是我觉得应该是这样的:文件正在下载时,你显示的是一个图标,而当文件下载完成时,用另外一个图标来代替之前的图标

时间: 2024-08-03 11:00:10

hi 问几个android开发的问题的相关文章

android-请问在Android开发中如何只获得手机桌面上的App列表

问题描述 请问在Android开发中如何只获得手机桌面上的App列表 我现在能够获得手机中安装的所有App列表,但我只想获得手机桌面上的App列表,请问应该如何解决? 解决方案 第一步:建立基本数据:PakageMod.java public class PakageMod { public String pakageName;//应用的包名 public String appName;//应用的名称 public Drawable icon;//应用图标 public PakageMod()

apicloud-请问在Android开发中,怎么利用APICloud的模块进行开发?

问题描述 请问在Android开发中,怎么利用APICloud的模块进行开发? 如题.请问要怎么利用APICloud里面已有的模块进行开发,看它网站上的教学视频基本都是针对于web开发者的,那么有没有针对native开发者的视频教程呢?是利用superwebview吗?我研究了一天了也没研究出来怎么利用superwebview来在native开发中加入web模块呀..所以特来请教,还望有经验的大神们不吝赐教! 解决方案 http://docs.apicloud.com/APICloud/%E6%

rfid-请问Android开发中一般带有NFC功能的手机能否实现NFID识别入场证id信息

问题描述 请问Android开发中一般带有NFC功能的手机能否实现NFID识别入场证id信息 请问Android开发中一般带有NFC功能的手机能否实现NFID识别入场证id信息 是否需要相应的物理模块? 比如在应用中实现读取员工卡的id来实现某个app的登陆功能. 解决方案 已解决. 从硬件厂家要了驱动接口

sdk-问一个Android开发的环境安装问题!求解!

问题描述 问一个Android开发的环境安装问题!求解! 我安装Android SDK点击SDK Manager.exe之后这个界面不是有很多的包可以安装吗?怎么我的这个就是这么点希望大神帮我下! 解决方案 参考下这个, http://jingyan.baidu.com/article/b0b63dbfd0948c4a483070ea.html 因为现在国内连不上google了... 解决方案二: 参考下这个, http://jingyan.baidu.com/article/b0b63dbfd

我的 Android 开发实战经验总结

我的 Android 开发实战经验总结 字数4440 阅读5137 评论43 喜欢250 以前一直想写一篇总结 Android 开发经验的文章,估计当时的我还达不到某种水平,所以思路跟不上,下笔又捉襟见肘.近日,思路较为明朗,于是重新操起键盘开始码字一番.先声明一下哈,本人不是大厂的程序猿.去年毕业前,就一直在当前创业小团队从事自己热爱的打码事业至今.下面总结是建立在我当前的技术水平和认知上写的,如有不同看法欢迎留下评论互相交流. 1.理解抽象,封装变化 目前 Android 平台上绝大部分开发

Android开发入门(一)详解活动 1.1 Activity的生命周期

前言: 学习Android也有一年多了,目前在从事Android开发的工作.不敢说精通,但也小有心得 .相信很多android初学者和我刚开始接触android时一样,往往只了解某些知识点的表面,别人要是问点啥 ,还真就说不出个一二三来,往往处于"了解"阶段.所以,我打算将自己学习android的过程和经验总结整 理一下,发表出来,希望对学习android的同学有所帮助,也算给自己的学习进行总结吧.生命不息,学习不 止.一定要学会"享受"学习的过程,否则,学习起来就

百度地图-在android开发中使用百度LBS定位服务无法稳定准确获得地理位置

问题描述 在android开发中使用百度LBS定位服务无法稳定准确获得地理位置 程序代码如下所示,我是仿照网上的实例编写的,在manifests文件中已经添加了识别码以及百度定位的service,权限也按照百度的说明文档添加好了,在虚拟机中运行效果为无法获取地理位置,错误码62,真机运行则毫无反应,我完全找不到是什么地方出了问题,哪位大大可以帮我看一下吗? import android.os.Bundle; import android.support.v4.app.Fragment; impo

适合android开发的手机型号

问题描述 我是从事android开发的一名程序员,公司最近要配一款android手机,想问一下,什么型号比较合适做开发. 解决方案 开发用的Android手机我们应该选择:1. 入门型 - 如果你的预算较低,考虑到目前比较主流的配置,可以我们推荐Acer A1这款机型,目前售价在1900元,配置比较突出目前固件为Android 2.1,拥有1GHz的Snapdragon处理器,A8内核ARM v7架构性能突出,配备了256MB的RAM和512MB的ROM,500万像素摄像头,WVGA的3.5英寸

最快速的Android开发环境搭建ADT-Bundle及Hello World

DT-Bundle for Windows 是由Google Android官方提供的集成式IDE,已经包含了Eclipse,你无需再去下载Eclipse,并且里面已集成了插件,它解决了大部分新手通过eclipse来配置Android开发环境的复杂问题. 有了ADT-Bundle,新涉足安卓开发的同学也无需再像以前那样在网上参考繁琐的配置教程,可以轻松一步到位进行Android应用开发. 第一步:JAVA SDK(JDK)的安装: 可以去问百度下载JDK,也可以到官方下载JDK. 官方下载地址: