不確定なプログレスバーを適切なサイズとパディングで設定する方法を見つけました。私のソリューションでは、setActionView() で回避策を使用していません。これは、ネイティブ アクション バー (ActionBarSherlock) でサポートされている組み込みのプログレス バー機能のソリューションです。プログレス バーはsetProgressBarIndeterminateVisibility(boolean)メソッドで有効/無効にできます。Android 2、3、4、および ldpi、mdpi、xhdpi でテストしました。

AndroidManifest.xml:
<application
...
android:theme="@style/Theme.Example">
/res/values/styles.xml:
<resources xmlns:android="http://schemas.android.com/apk/res/android">
...
<style name="Theme.Example" parent="Theme.Sherlock">
<item name="actionBarStyle">@style/Example.ActionBar</item>
<item name="android:actionBarStyle">@style/Example.ActionBar</item>
</style>
<style name="Example.ActionBar" parent="Widget.Sherlock.ActionBar">
<item name="indeterminateProgressStyle">@style/Example.ActionBar.IndeterminateProgressBar</item>
<item name="android:indeterminateProgressStyle">@style/Example.ActionBar.IndeterminateProgressBar</item>
</style>
<style name="Example.ActionBar.IndeterminateProgressBar" parent="@android:style/Widget.ProgressBar.Large.Inverse">
<item name="android:indeterminateDrawable">@drawable/layer_list_ab_indeterminate_progress_bar</item>
<item name="android:minWidth">@dimen/ab_indeterminate_progress_bar_size</item>
<item name="android:maxWidth">@dimen/ab_indeterminate_progress_bar_size</item>
<item name="android:minHeight">@dimen/ab_indeterminate_progress_bar_size</item>
<item name="android:maxHeight">@dimen/ab_indeterminate_progress_bar_size</item>
</style>
</resources>
/res/drawable/layer_list_ab_indeterminate_progress_bar.xml:
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<!--
/res/drawable-mdpi/ab_indeterminate_progress_bar asset is taken from
/sdk/platforms/android-18/data/res/mdpi/spinner_white_48.png
and its content (optical square) is resized to ~0.6 (must be even number)
/res/drawable-mdpi-v14/ab_indeterminate_progress_bar asset is taken from
/sdk/platforms/android-18/data/res/mdpi/spinner_48_outer_holo.png
and its content (optical square) is resized to 0.75
-->
<rotate
android:drawable="@drawable/ab_indeterminate_progress_bar"
android:interpolator="@android:anim/linear_interpolator"
android:pivotX="50%"
android:pivotY="50%"
android:fromDegrees="0"
android:toDegrees="360" />
</item>
</layer-list>
/res/values/dimens.xml:
<dimen name="ab_indeterminate_progress_bar_size">48dp</dimen>
最後にプログレス バー アセットを作成しました。Android SDK の次の 2 つのアセットを使用しました。
- ハニカム以前の場合は /sdk/platforms/android-18/data/res/mdpi/spinner_white_48.png
- ICS 以降の場合は /sdk/platforms/android-18/data/res/mdpi/spinner_48_outer_holo.png
適切なサイズとパディングを取得するには、アセットのサイズを変更する必要があります。spinner_white_48.png のサイズを~0.6に変更しました。mdpi の場合は 28px でした。中心対称になるには偶数でなければなりません。アイコン全体ではなく、コンテンツのみのサイズを変更しました。したがって、mdpi のアイコンは 48 ピクセルのままですが、そのコンテンツ (光学正方形) は小さくなります (28 ピクセル)。この方法でコンテンツのサイズを簡単に変更できます。最初に「画像サイズ」を 28px X 28px に変更し、次に「キャンバス サイズ」を 48px X 48px に戻します。spinner_48_outer_holo.png のサイズを0.75に変更しました。以下のアセットをダウンロードできます。
Honeycomb- と ICS+ で異なるアセットを使用するのはなぜですか? Holo アセットのみを使用している場合、Honeycomb を使用する一部のデバイスではアニメーションが少しぎこちないためです。
ヒント: アニメーションを含む別の項目を layer_list_ab_indeterminate_progress_bar.xml に追加できます。たとえば、標準の Holo プログレス バーでは、方向が反対で角度範囲が異なる 2 つのアニメーションが使用されます。SDK の progress_medium_holo.xml を参照してください。
/res/drawable-mdpi/ab_indeterminate_progress_bar.png:

/res/drawable-mdpi-v14/ab_indeterminate_progress_bar.png (このページではほとんど見えません):

/res/drawable-hdpi/ab_indeterminate_progress_bar.png:

/res/drawable-hdpi-v14/ab_indeterminate_progress_bar.png (このページではほとんど見えません):

/res/drawable-xhdpi/ab_indeterminate_progress_bar.png:

/res/drawable-xhdpi-v14/ab_indeterminate_progress_bar.png (このページではほとんど見えません):
