Android自定义悬浮按钮效果实现,带移动效果
发布时间:2020-12-15 03:23:01 所属栏目:Java 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 public class MainActivity extends Activity { private Button btn_hide,btn_show; private Floatingbutton floatingButton ; @Override protected v
以下代码由PHP站长网 52php.cn收集自互联网 现在PHP站长网小编把它分享给大家,仅供参考 public class MainActivity extends Activity { private Button btn_hide,btn_show; private Floatingbutton floatingButton ; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btn_hide=(Button)findViewById(R.id.btn_hide); btn_show=(Button)findViewById(R.id.btn_show); floatingButton = (Floatingbutton) findViewById(R.id.button_floating_action); btn_hide.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub floatingButton.hide(); } }); btn_show.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub floatingButton.show(); } }); } } public class Floatingbutton extends ImageButton { private Boolean isShow = false; private static final int TRANSLATE_DURATION_MILLIS = 200; private final Interpolator mInterpolator = new AccelerateDecelerateInterpolator(); public Floatingbutton(Context context) { super(context); } public Floatingbutton(Context context,AttributeSet attrs) { super(context,attrs); init(context,attrs); } public Floatingbutton(Context context,AttributeSet attrs,int defStyle) { super(context,attrs,defStyle); init(context,attrs); } public void init(Context context,AttributeSet attrs) { show(); } public void show() { if (!isShow) { isShow = true; toggle(); } } public void hide() { if (isShow) { isShow = false; toggle(); } } private void toggle() { int height = getHeight(); int translationY = isShow ? 0 : height + getMarginBottom(); animate().setInterpolator(mInterpolator) .setDuration(TRANSLATE_DURATION_MILLIS) .translationY(translationY); } private int getMarginBottom() { int marginBottom = 0; final ViewGroup.LayoutParams layoutParams = getLayoutParams(); if (layoutParams instanceof ViewGroup.MarginLayoutParams) { marginBottom = ((ViewGroup.MarginLayoutParams) layoutParams).bottomMargin; } return marginBottom; } } 以上内容由PHP站长网【52php.cn】收集整理供大家参考研究 如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |