私は適切なサイズとパディングで不確定進捗バーを設定するために、どのように働いて解決策を見つけました。私のソリューションはsetActionView()で回避策を使用していません。ネイティブアクションバー(ActionBarSherlock)でサポートされている、組み込みプログレスバー機能のソリューションです。プログレスバーはsetProgressBarIndeterminateVisibility(boolean)メソッドによって有効/無効にされます。 Android 2、3、4、ldpi、mdpi、xhdpiでテストしました。
![Result](https://i.stack.imgur.com/kpYCo.png)
の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からこれら二つの資産を使用:ハニカムと古い
/SDK /プラットフォーム/アンドロイド-18用/sdk/platforms/android-18/data/res/mdpi/spinner_white_48.png
ため/data/res/mdpi/spinner_48_outer_holo.png、我々は資産のサイズを変更する必要があります。 spinner_white_48.pngを〜0.6にリサイズしました。 mdpiでは28pxでした。中心対称でなければなりません。全体のアイコンではなく、コンテンツのサイズを変更しました。したがって、mdpiのアイコンはまだ48pxですが、その内容(光学正方形)はより小さい(28px)。この方法で簡単にコンテンツのサイズを変更することができます。まず、「画像サイズ」を28ピクセル×28ピクセルに変更し、次に「キャンバスサイズ」を48ピクセル×48ピクセルに変更します。 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:
![enter image description here](https://i.stack.imgur.com/e5GCW.png)
/res/drawable-mdpi-v14/ab_indeterminate_progress_bar.png(このページのほとんど見えない):
/res/drawable-hdpi/ab_indeterminate_progress_bar.png:
![enter image description here](https://i.stack.imgur.com/EdjQU.png)
/res/drawable-hdpi-v14/ab_indeterminate_progress_bar.png(このページのほとんど見えない):
![enter image description here](https://i.stack.imgur.com/HTHJe.png)
/res/drawable-xhdpi/ab_indeterminate_progress_bar.png:
![enter image description here](https://i.stack.imgur.com/KuGM7.png)
/res/drawable-xhdpi-v14/ab_indeterminate_progress_bar。PNG(このページのほとんど見えない):
![enter image description here](https://i.stack.imgur.com/YzhQc.png)
本当にカスタムdrawablesとアセットのサイズを変更せずに行う方法はありますか?あなたが言及した様式で 'minWidth'、' minHeight'、 'maxWidth'、' maxHeight'を設定することによって、望みの効果をほとんど得ることができますが、 'ProgressBar'はまるで三ドットオーバーフローメニューアイコンなしで現れますそれは恐ろしい)。 'padding'を設定すると、スタイル内の' layout_margin'は効果がありません。なぜ!なぜ!!?? – janakagamini