アンドロイドプログレスバー自定义
在描画可能文件夹中建立如下旋转动画文件
<?xml version="1.0" encoding="utf-8"?<?xml version="1.0" encoding="utf-8;"?>
<animated-rotate xmlns:android="http://schemas.android.com/apk/res/android"。
android:drawable="@drawable/loading1"
android:pivotX="50%"
android:pivotY="50%" />
その中ローディング1 即为您想的的图片
二在布局文件中设置的步行棒
プログレスバー
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:indeterminateDrawable="@drawable/progressbg"
android:indeterminateOnly="true"
android:indeterminateBehavior="repeat"
/>
先看效果图
代码
新建材ドローイング可能
新建一个描画可能/プログレスバークロール
<?xml version="1.0" encoding="utf-8"?<?xml version="1.0" encoding="utf-8;"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
項目
android:id="@android:id/progress"
android:drawable="@drawable/common_button_red"/>
</layer-list>
新建築物/プログレッシブ・スケープ
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"。
android:shape="rectangle" >
<corners android:radius="10dp" />
<solid android:color="#ffffff" />
</shape>
布教局:
プログレスバー
android:background="@drawable/progresssape"
android:id="@+id/pb"
android:layout_width="wrap_content"
android:layout_height="10dp"
android:layout_marginLeft="8dp"
android:layout_marginRight="8dp"
android:layout_weight="1"
android:indeterminateOnly="false"
android:max="100"
android:progressDrawable="@drawable/progressbarclor" />
http://winwyf.blog.51cto.com/4561999/857867
Android原生控件只有横向进度条一种,而且没法变化样式,比原生的的样子。
很丑是吧,当大的产品设计要求更换前的背景,甚至纵向,甚至圆形状的,咋比,如。
ok,我们开始吧:。
一)变换前景背後
先来看:プログレッシブバー的属性
- android:id="@+id/progressBar"
- style="?android:attr/progressBarStyleHorizontal"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_margin="5dip"
- android:layout_toRightOf="@+id/progressBarV"
- android:indeterminate="false"
- android:padding="2dip"
- android:progress="50" />
根据style="?android:attr/progressBarStyleHorizontal",我们找到源码中的style.xml
See
< item name = "android:progressDrawable" > @android:drawable/progress_horizontal </ item >
Wood, keep digging into the source code and find the progress_horizontal.xml under the drawable, which is our main character today: the
- android:startColor="#ff9d9e9d"
- android:centerColor="#ff5a5d5a"
- android:centerY="0.75"
- android:endColor="#ff747674"
- android:angle="270"
- />
- android:startColor="#80ffd300"
- android:centerColor="#80ffb600"
- android:centerY="0.75"
- android:endColor="#a0ffcb00"
- android:angle="270"
- />
- android:startColor="#ffffd300"
- android:centerColor="#ffffb600"
- android:centerY="0.75"
- android:endColor="#ffffcb00"
- android:angle="270"
- />
See android:id="@android:id/progress"wood, see android:id="@android:id/secondaryProgress"wood
Copy this file to your project's drawable, and you can change the properties of the shape, gradient, rounded corners, etc. as you like
So how do you put an image in there? OK, create a new progress_horizontal1.xml:
Specify your processed image in android:drawable
Then go back to the layout
- android:id="@+id/progressBar1"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_below="@+id/progressBar"
- android:layout_margin="5dip"
- android:layout_toRightOf="@+id/progressBarV"
- android:background="@drawable/progress_bg"
- android:indeterminate="false"
- android:indeterminateOnly="false"
- android:maxHeight="20dip"
- android:minHeight="20dip"
- android:padding="2dip"
- android:progress="50"
- android:progressDrawable="@drawable/progress_horizontal1" />
android:background="@drawable/progress_bg" 背景を指定します。
android:progressDrawable="@drawable/progress_horizontal1"foreground は上記を使用します。 進捗状況_水平方向1
OK、完了
なお、角が丸く面取りされているのは、システム自体が追加したようですが、いずれにせよ、私の画像ではこの面取りはしていません
(B) 垂直方向のプログレスバー
まだ、ソースコードから振り返る必要があります。 progress_horizontal.xml
- <項目
- <クリップ
- <形状
- <コーナー
- android:startColor="#ffffd300"
- android:centerColor="#fffb600"
- android:centerY="0.75"
- android:endColor="#ffffcb00"
- android:angle="270"
- />
なぜ、形状の外側がクリップのレイヤーを包むのか、公式ドキュメントでは、clipdrawableが自己複製であることを説明していますが、その定義を見るには、次のようにします。
- <未定義
- xmlns:android="http://schemas.android.com/apk/res/android"。
- android:drawable="@drawable/drawable_resource"
- android:clipOrientation=["horizontal" | "vertical"].
- android:gravity=["top" | "bottom" | "left" | "right" | "center_vertical" | | | ]です。
- "fill_vertical" | "center_horizontal" | "fill_horizontal" |。
- "center" | "fill" | "clip_vertical" | "clip_horizontal"] を参照してください。/>
android:clipOrientation は2つのプロパティを持ち、デフォルトはhorizontalです。
android:gravityには2つのプロパティがあり、デフォルトはleftです。
では、縦と下に変えてみて、どうなるかを見てみましょう。progress_vertical.xmlを新規に作成し、ソースコードを以下のように記述します。 progress_horizontal.xmlの内容をコピーして、ここから削除します。 secondaryProgressで、クリップを修正し、シェイプのグラデーションのcenterYをcenterXに変更しました。
- <項目
- android:clipOrientation="vertical"
- android:gravity = "bottom">
- <形状
- <コーナー
- android:startColor="#ffffd300"
- android:centerColor="#fffb600"
- android:centerX="0.75"
- android:endColor="#ffffcb00"
- android:angle="90"
- />
android:progressDrawable="@drawable/progress_vertical" にレイアウトされています。
OK、完了です!このように簡単です。
(iii) アークバー
これはプログレスバーとは言えないかもしれませんし、あまり使われません。せいぜいダッシュボードに使われるくらいで、そうでなければ誰がプログレスバー全体を円弧にするのでしょう。これは、ソースコードを変更することでできることではありません。
関連
-
GPSプロンプトの問題は、Callがユーザーによって拒否される可能性のある許可を必要とすることです:コードは、明示的にsをチェックする必要があります。
-
解決策 エラーです。jarfile にアクセスできません。\ʕ-̫͡-ʔ
-
パッケージが見つからないエラー 解決策と jdk の切り替え
-
アンドロイドバージョン一覧
-
Android ListViewでaddHeaderを使用する
-
Manifest merger failed : Android 12以降をターゲットとするアプリは、明示的な指定が必要です。
-
java.lang.SecurityException を解決してください。android パッケージは 10065 に属していません。
-
Android開発用アダプターシリーズ。カスタムアダプタを使ったスピナー
-
Mac OS X用Android Studioショートカット
-
AndroidManifest.xml の use-sdk 警告メソッドを削除する。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Android Studio + Gradle またはコマンドラインを使用した Android apk の署名とパッケージング
-
Android ViewPager のエラーです。NULLオブジェクトの参照で仮想メソッドxxxを呼び出そうとした
-
SolutionMethod がスーパークラスのメソッドをオーバーライドしない。
-
Intellij Ideaは、シンボルが見つからない、RクラスまたはRパッケージが存在しない、というエラーを報告します。
-
スピナー実装のダウンメニューとイベントリスニング(グラフィックモード)
-
アンドロイドアンダーライン(図形入り
-
MPAndroidChartのPieChartで、セクターが表示されず、中央のテキストのみが表示される。
-
android start activity report android.content.res.Resources$NotFoundException: 文字列リソースID #0x0
-
INSTALL_FAILED_INVALID_APK: 分割された lib_slice_5_apk が複数回定義されている 例外
-
Android AVDで "このターゲットにはシステムイメージがインストールされていません "と表示される