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】收集整理供大家参考研究 如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
