2024年安卓最全Android 全局悬浮按钮,悬浮按钮点击事件,2024年最新百度的android面试题

Android高级架构师

由于篇幅问题,我呢也将自己当前所在技术领域的各项知识点、工具、框架等汇总成一份技术路线图,还有一些架构进阶视频、全套学习PDF文件、面试文档、源码笔记。

  • 330页PDF Android学习核心笔记(内含上面8大板块)

  • Android学习的系统对应视频

  • Android进阶的系统对应学习资料

  • Android BAT部分大厂面试题(有解析)

好了,以上便是今天的分享,希望为各位朋友后续的学习提供方便。觉得内容不错,也欢迎多多分享给身边的朋友哈。

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

saoli.setVisibility(View.GONE);

ewmli.setVisibility(View.GONE);

}else if (intparameter==1){

saoli.setVisibility(View.VISIBLE);

ewmli.setVisibility(View.VISIBLE);

mMQrCodeDialog = new QrCodeDialog(BaseActivity.this) {

@Override

public String setIvQrCode() {

return QrActivity.QR_TAG_ORDER + string;

}

};

imageView.setImageBitmap(bitmap);

}

}

}

};

private void createFloatActionButtons() {

View v = getWindow().getLayoutInflater().inflate(R.layout.layout_float_action_buttons, null);

FrameLayout.LayoutParams layoutParams = new FrameLayout.LayoutParams(FrameLayout.LayoutParams.WRAP_CONTENT, FrameLayout.LayoutParams.WRAP_CONTENT);

layoutParams.gravity = Gravity.BOTTOM | Gravity.RIGHT;

addContentView(v, layoutParams);

saoli = findViewById(R.id.saoli);

ewmli = findViewById(R.id.ewmli);

imageView = findViewById(R.id.ddmaimg);

initShowfloat();

saoli.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

scan();

}

});

ewmli.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

if (mMQrCodeDialog != null) {

mMQrCodeDialog.show();

}

}

});

}

public void initShowfloat(){

int ss = ShareUtil.getSharedInt(“floatint”);

if (ss==1){

saoli.setVisibility(View.VISIBLE);

ewmli.setVisibility(View.VISIBLE);

}else {

saoli.setVisibility(View.GONE);

ewmli.setVisibility(View.GONE);

}

final String ewmstring =ShareUtil.getSharedString(“ewmss”);

if (!TextUtils.isEmpty(ewmstring)){

Bitmap bitmap = QRCodeEncoder.syncEncodeQRCode(QrActivity.QR_TAG_ORDER+ewmstring,

BGAQRCodeUtil.dp2px(BaseActivity.this, ResUtil.getPx(R.dimen.normal_340dp)),

ContextCompat.getColor(BaseActivity.this, R.color.black), null);

mMQrCodeDialog = new QrCodeDialog(BaseActivity.this) {

@Override

public String setIvQrCode() {

return QrActivity.QR_TAG_ORDER + ewmstring;

}

};

imageView.setImageBitmap(bitmap);

}

}

private void scan() {

startActivity(QrActivity.newIntent(this, 0));

}

@Override

public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions,

@NonNull int[] grantResults) {

PermissionUtil.getInstance(getApplicationContext())

.onRequestPermissionsResult(requestCode, permissions, grantResults);

super.onRequestPermissionsResult(requestCode, permissions, grantResults);

}

@Override

protected void onDestroy() {

super.onDestroy();

ObServernotice.getInstance().removeObserver(observer);

observer = null;

}

}

方法二:


machine_state_view文件

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout

xmlns:android=“http://schemas.android.com/apk/res/android”

android:layout_width=“wrap_content”

android:layout_height=“wrap_content”>

<FrameLayout

android:background=“@mipmap/ic_jxz”

android:layout_width=“wrap_content”

android:layout_height=“wrap_content”>

<TextView

android:layout_width=“wrap_content”

android:layout_height=“wrap_content”

android:visibility=“gone”

android:layout_gravity=“right|top”

android:text=“2”

AbstractDragFloatActionButton文件

/**

*meixi

*/

public abstract class AbstractDragFloatActionButton extends RelativeLayout {

private int parentHeight;//悬浮的父布局高度

private int parentWidth;

public AbstractDragFloatActionButton(Context context) {

this(context, null, 0);

}

public AbstractDragFloatActionButton(Context context, AttributeSet attrs) {

this(context, attrs, 0);

}

public abstract int getLayoutId();

public abstract void renderView(View view);

public AbstractDragFloatActionButton(Context context, AttributeSet attrs, int defStyleAttr) {

super(context, attrs, defStyleAttr);

View view= LayoutInflater.from(context).inflate(getLayoutId(), this);

renderView(view);

}

@Override

protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {

measureChildren(widthMeasureSpec, heightMeasureSpec);

super.onMeasure(widthMeasureSpec, heightMeasureSpec);

}

@Override

protected void onLayout(boolean b, int i, int i1, int i2, int i3) {

View view = getChildAt(0);

view.layout(0,0,view.getMeasuredWidth(),view.getMeasuredHeight());

}

private int lastX;

private int lastY;

private boolean isDrag;

@Override

public boolean onTouchEvent(MotionEvent event) {

int rawX = (int) event.getRawX();

int rawY = (int) event.getRawY();

switch (event.getAction() & MotionEvent.ACTION_MASK) {

case MotionEvent.ACTION_DOWN:

setPressed(true);//默认是点击事件

isDrag=false;//默认是非拖动而是点击事件

getParent().requestDisallowInterceptTouchEvent(true);//父布局不要拦截子布局的监听

lastX=rawX;

lastY=rawY;

ViewGroup parent;

if(getParent()!=null){

parent= (ViewGroup) getParent();

parentHeight=parent.getHeight();

parentWidth=parent.getWidth();

}

break;

最后

有任何问题,欢迎广大网友一起来交流,分享高阶Android学习视频资料和面试资料包~

偷偷说一句:群里高手如云,欢迎大家加群和大佬们一起交流讨论啊!

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

rent.getWidth();

}

break;

最后

有任何问题,欢迎广大网友一起来交流,分享高阶Android学习视频资料和面试资料包~

偷偷说一句:群里高手如云,欢迎大家加群和大佬们一起交流讨论啊!

[外链图片转存中…(img-sEJoB0u4-1715730739462)]

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值