1. 程式人生 > 其它 >直播帶貨系統開發,如何實現一個有動畫效果的自定義下拉選單

直播帶貨系統開發,如何實現一個有動畫效果的自定義下拉選單

直播帶貨系統開發,實現一個有動畫效果的自定義下拉選單的相關程式碼
要實現的功能及思路如下:

1.下拉選單樣式是自定義的、非原生效果:需要使用 setDropDownViewResource 方法來設定下拉檢視的佈局樣式。該方法需要傳入佈局資源,該佈局需要定義每個 Item 的屬性,比如寬高和文字顏色等(為了使效果明顯,我將每個 Item 的高度設定為 50 dp,文字設定為藍色)
2.點選這個 Spinner 控制元件時,讓其執行一段“從左到右、逐漸顯示”的漸變動畫:我通過 xml 的方式來定義這個動畫,需要包含 translate(位移) 和 alpha(透明度) 兩個TAG,並設定相應的屬性值
3.下拉選單的內容列表要展示在 Spinner 裡面,需要通過介面卡 Adapter 跟 Spinner 進行繫結:可以直接使用Android原生的 ArrayAdapter
4.選擇任意一個 Item 後,將其內容展示在介面上,告知使用者選擇的內容:需要實現 Spinner 的 onItemSelected 監聽回撥

原始碼如下:
1、主Activity(注意程式碼中的註釋,不然你會遇到一些坑!)

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); // 設定資料的介面卡 mSpinner.setAdapter(mAdapter); mSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { mTextView.setText("你選擇的是:" + countries[position]); // 一定要設定父檢視可見,否則 在選擇後,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>

以上就是 直播帶貨系統開發,實現一個有動畫效果的自定義下拉選單的相關程式碼,更多內容歡迎關注之後的文章