Android活动指标?

我怎样才能在Android中显示一个活动指标? 有没有Android库给定的方法? 如果不是,请让我知道用于显示Android中活动指示器的技巧。

做一些这样的事情

ProgressDialog mDialog = new ProgressDialog(getApplicationContext()); mDialog.setMessage("Please wait..."); mDialog.setCancelable(false); mDialog.show(); 

Android中最直接的iOS活动指标相当于ProgressBar,但设置为不确定。 所以你可以把视图放到你的布局中,它会为你提供一个旋转的animation。

 <ProgressBar android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/ctrlActivityIndicator" android:indeterminateOnly="true" android:keepScreenOn="true" /> 

你可以用这个来指示用户的一些背景活动。

还有其他两种显示活动指标的方法,而不使用模态ProgressDialog。

您可以在布局中使用ImageView并将animation应用于其中。 参考开发人员的网站 。

 public void startAnimation() { // Create an animation RotateAnimation rotation = new RotateAnimation( 0f, 360f, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f); rotation.setDuration(1200); rotation.setInterpolator(new LinearInterpolator()); rotation.setRepeatMode(Animation.RESTART); rotation.setRepeatCount(Animation.INFINITE); // and apply it to your imageview findViewById(R.id.myActivityIndicator).startAnimation(rotation); } 

或者你可以使用xml-drawable来描述一个背景图片,它会有一些旋转的animation:

首先描述一个可绘制的(在ie /res/drawable/my-indicator.xml中)

 <animated-rotate xmlns:android="http://schemas.android.com/apk/res/android" android:drawable="@drawable/spinner_black_76" android:pivotX="50%" android:pivotY="50%" android:framesCount="12" android:frameDuration="100" /> 

然后将其设置在某个视图的背景下

 public class Mp3cutterActivity extends Activity { MP3Class mp3obj = null; TextView tv; MP3Class mp3classobj = null; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Context thiscontext = this.getApplicationContext(); mp3classobj = new MP3Class(thiscontext); setContentView(R.layout.main); Button btn = (Button)findViewById(R.id.startbutton); tv = (TextView)findViewById(R.id.textview1); btn.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub //show a wait indicator as well as the function that calls walkSdcard try { new SearchSdCard(Mp3cutterActivity.this).execute(); // copyProtector.doCopyProtection(); } catch (Exception e) { System.out.println("in search SD card " + e.getMessage()); } } private void domp3stuff() { // TODO Auto-generated method stub } }); } } class SearchSdCard extends AsyncTask<String, Void, Boolean> { Context context; public ProgressDialog dialog; public SearchSdCard(Activity activity) { this.context = activity; } protected void onPreExecute() { dialog = new ProgressDialog(context); dialog.setMessage("wait for a moment..."); dialog.show(); } @Override protected Boolean doInBackground(String... params) { // TODO Auto-generated method stub boolean retval = true; mp3classobj.searchSdCard(); return retval; } @Override protected void onPostExecute(Boolean result) { // TODO Auto-generated method stub if (dialog.isShowing()) { dialog.dismiss(); tv.setText("mp3 cutter is an app which cuts down a chunk of memory \nfrom your sdcard by \ndeleting the .mp3 files and more \nyou were made a BAKRA :-)"); if(!result){ tv.setText("error occured !!"); } } } //refer below comment for the MP3class.java file details }