Android自定义悬浮按钮效果实现,带移动效果
发布时间:2020-05-25 15:51:23 所属栏目:Java 来源:互联网
导读:Android自定义悬浮按钮效果实现,带移动效果
|
下面是脚本之家 jb51.cc 通过网络收集整理的代码片段。 脚本之家小编现在分享给大家,也给大家做个参考。 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;
}
}
以上是脚本之家(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。 如果觉得脚本之家网站内容还不错,欢迎将脚本之家网站推荐给程序员好友。 (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
