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

首頁 > 系統 > Android > 正文

Android編程實現仿QQ發表說說,上傳照片及彈出框效果【附demo源碼下載】

2019-12-12 03:56:56
字體:
來源:轉載
供稿:網友

本文實例講述了Android編程實現仿QQ發表說說,上傳照片及彈出框效果。分享給大家供大家參考,具體如下:

代碼很簡單,主要就是幾個動畫而已,圖標什么的就隨便找了幾個,效果圖:

 

動畫說明:

1.點擊右上角按鈕,菜單從頂部下拉彈出,同時背景變暗;
2.再次點擊右上角按鈕,點擊返回鍵,或者點擊空白區域(也就是變暗的部分),菜單向上收回;
3.點擊菜單上的按鈕響應事件,同時菜單收回(效果同2)

重要說明:動畫結束后必須clearAnimation,否則隱藏狀態的view依然能響應點擊事件

主體代碼:

public class MainActivity extends Activity {  //添加數據按鈕  private ImageView addDataIv;  //下拉功能菜單  private LinearLayout dropDownView;  private View bgView;  //當前下拉菜單是否為顯示狀態  private boolean showItems = false;  @Override  protected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_main);    addDataIv = (ImageView) findViewById(R.id.main_newData);    dropDownView = (LinearLayout) findViewById(R.id.dropDownView);    bgView = findViewById(R.id.main_bg);    addDataIv.setOnClickListener(new View.OnClickListener() {      @Override      public void onClick(View v) {        if (!showItems) {          showView();        } else {          dismissView();        }      }    });    //點擊空白隱藏彈出框    bgView.setOnClickListener(new View.OnClickListener() {      @Override      public void onClick(View v) {        if (showItems) {          dismissView();        }      }    });    //下拉功能菜單上按鈕的點擊事件    View.OnClickListener l = new OnClickImpl();    findViewById(R.id.dropDown_item1).setOnClickListener(l);    findViewById(R.id.dropDown_item2).setOnClickListener(l);    findViewById(R.id.dropDown_item3).setOnClickListener(l);    findViewById(R.id.dropDown_item4).setOnClickListener(l);  }  //顯示下拉菜單  private void showView() {    showItems = true;    addDataIv.startAnimation(AnimationUtils.loadAnimation(MainActivity.this, R.anim.rotate_open));    dropDownView.startAnimation(AnimationUtils.loadAnimation(this, R.anim.drop_down));    dropDownView.setVisibility(View.VISIBLE);    bgView.startAnimation(AnimationUtils.loadAnimation(MainActivity.this, R.anim.fade_dark));    bgView.setVisibility(View.VISIBLE);  }  //隱藏下拉菜單  private void dismissView() {    showItems = false;    addDataIv.startAnimation(AnimationUtils.loadAnimation(MainActivity.this, R.anim.rotate_close));    Animation dropUpAnim = AnimationUtils.loadAnimation(this, R.anim.drop_up);    dropUpAnim.setAnimationListener(new AnimListenerImpl(dropDownView));    dropDownView.startAnimation(dropUpAnim);    dropDownView.setVisibility(View.INVISIBLE);    Animation fadeLightAnim = AnimationUtils.loadAnimation(MainActivity.this, R.anim.fade_light);    fadeLightAnim.setAnimationListener(new AnimListenerImpl(bgView));    bgView.startAnimation(fadeLightAnim);    bgView.setVisibility(View.INVISIBLE);  }  //點擊返回鍵時,如果下拉菜單是顯示狀態,則隱藏它  @Override  public void onBackPressed() {    if (showItems) {      dismissView();      return;    }    super.onBackPressed();  }  private class OnClickImpl implements View.OnClickListener {    @Override    public void onClick(View v) {      if (!showItems) {        return;      }      int id = v.getId();      switch (id) {        case R.id.dropDown_item1:          Toast.makeText(MainActivity.this, "item1 onClick", Toast.LENGTH_SHORT).show();          dismissView();          break;        case R.id.dropDown_item2:          Toast.makeText(MainActivity.this, "item2 onClick", Toast.LENGTH_SHORT).show();          dismissView();          break;        case R.id.dropDown_item3:          Toast.makeText(MainActivity.this, "item3 onClick", Toast.LENGTH_SHORT).show();          dismissView();          break;        case R.id.dropDown_item4:          Toast.makeText(MainActivity.this, "item4 onClick", Toast.LENGTH_SHORT).show();          dismissView();          break;        default:          break;      }    }  }  //動畫結束后必須clearAnimation,否則隱藏狀態的view依然能響應點擊事件  private class AnimListenerImpl implements Animation.AnimationListener {    private View view;    public AnimListenerImpl(View view) {      this.view = view;    }    @Override    public void onAnimationStart(Animation animation) {    }    @Override    public void onAnimationEnd(Animation animation) {      view.clearAnimation();    }    @Override    public void onAnimationRepeat(Animation animation) {    }  }}

完整實例代碼點擊此處本站下載

更多關于Android相關內容感興趣的讀者可查看本站專題:《Android開發動畫技巧匯總》、《Android編程之activity操作技巧總結》、《Android視圖View技巧總結》、《Android布局layout技巧總結》、《Android開發入門與進階教程》、《Android資源操作技巧匯總》及《Android控件用法總結

希望本文所述對大家Android程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 保定市| 喀什市| 宣汉县| 桦川县| 莱芜市| 台南市| 元江| 大庆市| 麻江县| 偏关县| 丹巴县| 高台县| 井陉县| 海盐县| 舒城县| 固安县| 白玉县| 满洲里市| 襄汾县| 马龙县| 平谷区| 固始县| 德格县| 玉屏| 仙游县| 巴塘县| 武城县| 永修县| 含山县| 安陆市| 德昌县| 安乡县| 平果县| 屏山县| 德兴市| 盈江县| 芦山县| 芦山县| 临武县| 丰顺县| 平谷区|