概述
一个带动画效果的悬浮按钮。从下往上显示,从上往下消失。
代码比较简单,实现原理也比较简单。
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;
}
}
标签:
代码
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点!
本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。
最后
以上就是潇洒耳机为你收集整理的Android自定义旋钮效果,Android自定义悬浮按钮效果实现,带移动效果的全部内容,希望文章能够帮你解决Android自定义旋钮效果,Android自定义悬浮按钮效果实现,带移动效果所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复