我必须在我的项目中实现此处描述的活动栏。
http://developer.android.com/design/building-blocks/progress.html
如果有人知道怎么做,请帮助我。我已经搜索了很多方法来做到这一点。
答案 0 :(得分:0)
使用Action Bar Sherlock(小于api 3)。更多信息请点击here。谢谢你:))
答案 1 :(得分:0)
MainActivity
public class MainActivity extends SherlockActivity {
private final Handler handler = new Handler();
private boolean useLogo = false;
private boolean showHomeUp = true;
ActionMode mMode;
Handler mHandler = new Handler();
Runnable mProgressRunner = new Runnable() {
@Override
public void run() {
mProgress += 2;
//Normalize our progress along the progress bar's scale
int progress = (Window.PROGRESS_END - Window.PROGRESS_START) / 100 * mProgress;
setSupportProgress(progress);
if (mProgress < 100) {
mHandler.postDelayed(mProgressRunner, 50);
}
}
};
private int mProgress = 100;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_PROGRESS);
setContentView(R.layout.main);
final ActionBar ab = getSupportActionBar();
// set defaults for logo & home up
ab.setDisplayHomeAsUpEnabled(showHomeUp);
ab.setDisplayUseLogoEnabled(useLogo);
((Button)findViewById(R.id.progress)).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (mProgress == 100) {
mProgress = 0;
mProgressRunner.run();
}
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getSupportMenuInflater().inflate(R.menu.main_menu, menu);
// set up a listener for the refresh item
final MenuItem refresh = (MenuItem) menu.findItem(R.id.menu_refresh);
refresh.setOnMenuItemClickListener(new OnMenuItemClickListener() {
// on selecting show progress spinner for 1s
public boolean onMenuItemClick(MenuItem item) {
// item.setActionView(R.layout.progress_action);
handler.postDelayed(new Runnable() {
public void run() {
refresh.setActionView(null);
}
}, 1000);
return false;
}
});
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
// TODO handle clicking the app icon/logo
return false;
case R.id.menu_refresh:
// switch to a progress animation
item.setActionView(R.layout.indeterminate_progress_action);
return true;
default:
return super.onOptionsItemSelected(item);
}
}}
main.xml中
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/root"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal" >
<Button
android:id="@+id/progress"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Progress" />
</LinearLayout>
indeterminate_progress_action.xml
<?xml version="1.0" encoding="utf-8"?>
<ProgressBar
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:indeterminate="true"
android:layout_marginLeft="@dimen/progress_action_padding"
android:layout_marginRight="@dimen/progress_action_padding" />
菜单/ main_menu.xml
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/menu_refresh" android:showAsAction="ifRoom"
android:title="@string/action_label_refresh"
android:icon="@drawable/ic_menu_refresh_holo_dark" />
</menu>
的AndroidManifest.xml
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.actionbarstyleexample"
android:versionCode="1"
android:versionName="1.0">
<uses-sdk android:minSdkVersion="16" android:targetSdkVersion="19" />
<application android:label="@string/app_name"
android:icon="@drawable/ic_launcher"
android:theme="@style/AppTheme">
<activity android:name="com.actionbarsherlock.sample.styled.MainActivity"
android:label="@string/activity_name"
android:logo="@drawable/ad_logo"
android:uiOptions="splitActionBarWhenNarrow">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
</application>