国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android自定義View實現loading動畫加載效果

2019-10-23 18:35:28
字體:
來源:轉載
供稿:網友

 項目開發中對Loading的處理是比較常見的,安卓系統提供的不太美觀,引入第三發又太麻煩,這時候自己定義View來實現這個效果,并且進行封裝抽取給項目提供統一的loading樣式是最好的解決方式了。

先自定義一個View,繼承自LinearLayout,在Layout中,添加布局控件

/**  * Created by xiedong on 2017/3/7.  */ public class Loading_view extends LinearLayout {   private Context mContext;   private RelativeLayout loading_content;   private ImageView img;   private TextView loadingText;   private AnimationDrawable animationDrawable;   public Loading_view(Context context) {     super(context);     mContext = context;     setupView();   }   public Loading_view(Context context, AttributeSet attrs) {     super(context, attrs);     mContext = context;     setupView();   }   public Loading_view(Context context, AttributeSet attrs, int defStyleAttr) {     super(context, attrs, defStyleAttr);     mContext = context;     setupView();   }   private void setupView() { //  View view= LayoutInflater.from(mContext).inflate(R.layout.loading_view_layout,this);   //一定要把布局添加進容器,不能為null     View.inflate(mContext, R.layout.loading_view_layout, this);     loading_content = (RelativeLayout) findViewById(R.id.loading_content);     img = (ImageView) findViewById(R.id.img);     loadingText = (TextView) findViewById(R.id.text);     img.setImageResource(R.drawable.anim_loading);     animationDrawable = ((AnimationDrawable) img.getDrawable());     animationDrawable.start();   }   public void setMessage(String msg) {     loadingText.setText(msg);   } } 

自定義View的布局文件:

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"   android:layout_width="match_parent"   android:layout_height="match_parent"   android:background="#90000000"   android:gravity="center">   <RelativeLayout     android:id="@+id/loading_content"     android:layout_width="150dp"     android:layout_height="120dp"     android:background="#40ffffff">     <ImageView       android:id="@+id/img"       android:layout_width="wrap_content"       android:layout_height="wrap_content"       android:layout_centerInParent="true"       android:background="@mipmap/ic_launcher" />     <TextView       android:id="@+id/text"       android:layout_width="wrap_content"       android:layout_height="wrap_content"       android:layout_below="@+id/img"       android:layout_centerHorizontal="true"       android:text="加載中..."       />   </RelativeLayout> </LinearLayout> 

這里使用AnimationDrawable的方式來實現動畫效果,AnimationDrawable的list文件如下:

<animation-list xmlns:android="http://schemas.android.com/apk/res/android"   android:oneshot="false">   <item     android:drawable="@drawable/loading1"     android:duration="100" />   <item     android:drawable="@drawable/loading2"     android:duration="100" />   <item     android:drawable="@drawable/loading3"     android:duration="100" />   <item     android:drawable="@drawable/loading10"     android:duration="100" /> </animation-list> 

自定義View部分的工作完成之后,接下來就是如何在項目中具體運用。在相應的布局中使用的時候,一定要記得把此布局文件add進ViewGroup中,因為該自定義的View跟調用他的View是獨立的兩個View,沒有完成add的話,loading布局可能不會顯示出來。

private Loading_view loading_view;  loading_view = new Loading_view(this); //實例化自定義VIew  loading_view.setMessage("loading文字提示內容....");  //添加當前自定義View進主布局文件  addContentView(loading_view, new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)); 

以上所述是小編給大家介紹的Android自定義View實現loading動畫加載效果,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對VEVB武林網網站的支持!


注:相關教程知識閱讀請移步到Android開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 伊宁县| 饶河县| 锡林浩特市| 通江县| 新竹县| 蕉岭县| 响水县| 云安县| 靖江市| 洞头县| 宣威市| 元氏县| 当雄县| 稻城县| 巴塘县| 德保县| 江山市| 普洱| 溆浦县| 承德市| 平原县| 社会| 汾阳市| 朝阳县| 元氏县| 铜陵市| 安远县| 庆阳市| 永兴县| 建水县| 布尔津县| 方山县| 灵武市| 神木县| 文登市| 台中县| 白水县| 香河县| 遂昌县| 黔东| 彰武县|