亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Android實現(xiàn)動畫效果的自定義下拉菜單功能

 更新時間:2021年02月23日 09:29:12   作者:snowyeti  
這篇文章主要介紹了Android實現(xiàn)動畫效果的自定義下拉菜單功能,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下

我們在購物APP里面設(shè)置收貨地址時,都會有讓我們選擇省份及城市的下拉菜單項。今天我將使用Android原生的 Spinner 控件來實現(xiàn)一個自定義的下拉菜單功能,并配上一個透明漸變動畫效果。

要實現(xiàn)的功能及思路如下:

下拉菜單樣式是自定義的、非原生效果:需要使用 setDropDownViewResource 方法來設(shè)置下拉視圖的布局樣式。該方法需要傳入布局資源,該布局需要定義每個 Item 的屬性,比如寬高和文字顏色等(為了使效果明顯,我將每個 Item 的高度設(shè)置為 50 dp,文字設(shè)置為藍色)點擊這個 Spinner 控件時,讓其運行一段“從左到右、逐漸顯示”的漸變動畫:我通過 xml 的方式來定義這個動畫,需要包含 translate(位移) 和 alpha(透明度) 兩個TAG,并設(shè)置相應(yīng)的屬性值下拉菜單的內(nèi)容列表要展示在 Spinner 里面,需要通過適配器 Adapter 跟 Spinner 進行綁定:可以直接使用Android原生的 ArrayAdapter選擇任意一個 Item 后,將其內(nèi)容展示在界面上,告知用戶選擇的內(nèi)容:需要實現(xiàn) Spinner 的 onItemSelected 監(jiān)聽回調(diào)

源碼如下:

1、主Activity(注意代碼中的注釋,不然你會遇到一些坑?。?/p>

public class SpinnerDemo extends Activity {
  private static final String[] countries = {"北京", "上海", "廣州", "深圳", "成都", "杭州"};

  private TextView mTextView;
  private Spinner mSpinner;
  private ArrayAdapter<String> mAdapter;
  private Animation mAnimation;

  @Override
  protected void onCreate(Bundle onSavedInstance) {
    super.onCreate(onSavedInstance);
    setContentView(R.layout.spinner_demo);

    mTextView = findViewById(R.id.textView9);
    mSpinner = findViewById(R.id.spinner);

    mAdapter = new ArrayAdapter<>(this, android.R.layout.simple_spinner_item, countries);

    // 自定義的下拉視圖布局樣式
    mAdapter.setDropDownViewResource(R.layout.spinner_drop_down);

    // 設(shè)置數(shù)據(jù)的適配器
    mSpinner.setAdapter(mAdapter);

    mSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
      @Override
      public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
        mTextView.setText("你選擇的是:" + countries[position]);

        // 一定要設(shè)置父視圖可見,否則 在選擇后,Spinner會消失
        parent.setVisibility(View.VISIBLE);
      }

      @Override
      public void onNothingSelected(AdapterView<?> parent) {
      }
    });

    // 通過 xml 的形式來定義動畫
    mAnimation = AnimationUtils.loadAnimation(this, R.anim.my_anim);
    mSpinner.setOnTouchListener(new Spinner.OnTouchListener() {
      @Override
      public boolean onTouch(View v, MotionEvent event) {
        // 點擊 Spinner 后,運行動畫
        v.startAnimation(mAnimation);
        return false;
      }
    });
  }
}

2、布局文件 spinner_demo.xml 如下:

<?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:orientation="vertical">

  <TextView android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_gravity="center"
       android:id="@+id/textView9"/>

  <Spinner android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:id="@+id/spinner"
       android:layout_gravity="center"
       android:layout_marginTop="15dp"/>

</LinearLayout>

3、自定義的下拉視圖樣式布局文件 spinner_drop_down.xml 如下:

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
       android:layout_width="wrap_content"
       android:layout_height="50dp"
       android:textColor="@color/colorBlue"
       android:singleLine="true"
       style="?android:attr/spinnerDropDownItemStyle">
</TextView>

4、自定義動畫 xml 文件如下:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
  <translate
    android:fromXDelta="0"
    android:toXDelta="50%p"
    android:duration="2000"/>

  <alpha
    android:fromAlpha="0.0"
    android:toAlpha="1.0"
    android:duration="2000"/>
</set>

5、效果圖如下:

到此這篇關(guān)于Android實現(xiàn)動畫效果的自定義下拉菜單功能的文章就介紹到這了,更多相關(guān)android自定義下拉菜單內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Android中的OpenGL使用配置詳解

    Android中的OpenGL使用配置詳解

    這篇文章主要為大家介紹了Android中的OpenGL使用配置詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-02-02
  • Android如何快速集成騰訊Bugly

    Android如何快速集成騰訊Bugly

    這篇文章主要介紹了Android如何快速集成騰訊Bugly,幫助大家更好的理解和學(xué)習(xí)使用Android開發(fā),感興趣的朋友可以了解下
    2021-04-04
  • 輕松實現(xiàn)可擴展自定義的Android滾輪時間選擇控件

    輕松實現(xiàn)可擴展自定義的Android滾輪時間選擇控件

    這篇文章主要為大家詳細介紹了可擴展自定義的Android滾輪時間選擇控件,結(jié)合WheelView實現(xiàn)滾輪選擇日期操作,感興趣的小伙伴們可以參考一下
    2016-07-07
  • Android Service 服務(wù)不被殺死的妙招

    Android Service 服務(wù)不被殺死的妙招

    這篇文章主要介紹了Android Service 服務(wù)不被殺死的妙招的相關(guān)資料,需要的朋友可以參考下
    2015-11-11
  • Android實現(xiàn)雙向滑動特效的實例代碼

    Android實現(xiàn)雙向滑動特效的實例代碼

    這篇文章主要介紹了Android實現(xiàn)雙向滑動特效的實例代碼,具有很好的參考價值,希望對大家有所幫助,一起跟隨小編過來看看吧
    2018-05-05
  • Android 組件Gallery和GridView示例講解

    Android 組件Gallery和GridView示例講解

    本文主要講解Android 組件Gallery和GridView,這里詳細介紹組件Gallery和GridView的知識要點,并附示例代碼和實現(xiàn)效果圖,有興趣的小伙伴可以參考下
    2016-08-08
  • Android實現(xiàn)水波紋效果實例代碼

    Android實現(xiàn)水波紋效果實例代碼

    大家好,本篇文章主要講的是Android實現(xiàn)水波紋效果實例代碼,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下
    2022-02-02
  • Android通過自定義view實現(xiàn)刮刮樂效果詳解

    Android通過自定義view實現(xiàn)刮刮樂效果詳解

    這篇文章主要介紹了如何在Android中利用自定義的view實現(xiàn)刮刮樂的效果,文中的示例代碼講解詳細,感興趣的小伙伴可以跟上小編一起動手試一試
    2022-03-03
  • Android使用MediaRecorder類進行錄制視頻

    Android使用MediaRecorder類進行錄制視頻

    這篇文章主要介紹了Android使用MediaRecorder類進行錄制視頻的相關(guān)資料,需要的朋友可以參考下
    2015-10-10
  • Flutter數(shù)據(jù)庫的使用方法

    Flutter數(shù)據(jù)庫的使用方法

    這篇文章主要介紹了Flutter數(shù)據(jù)庫的使用方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-05-05

最新評論