定制项目——修改密码功能

定制项目——修改密码功能,第1张

概述文章目录导入项目照着视觉写ui透明度圆角布局修改ImageView颜色gravity横竖屏切换密码显示**加粗样式**隐藏更换字体更换ImageView图片设置控件可见与隐藏Dialog&PopupWindow开始接触项目了!先负责一个修改密码功能,把遇到的问题汇总一下导入项目导入项目时遇到的一万个

文章目录导入项目照着视觉写ui透明度圆角布局修改ImageView颜色gravity横竖屏切换密码显示**加粗样式**隐藏更换字体更换ImageView图片设置控件可见与隐藏Dialog&PopupWindow
开始接触项目了!先负责一个修改密码的功能,把遇到的问题汇总一下

导入项目

导入项目时遇到的一万个问题
基本上百度的很多都不适用…还是要问师父

照着视觉写ui透明度

要写8位的颜色代码,前两位是透明度对应的16进制数

xml文件中
半透明<button AndroID:background="#80000000" … />
透明<button androID:background="#00000000" … />

圆角布局
<?xml version="1.0" enCoding="utf-8"?><shape xmlns:androID="http://schemas.androID.com/apk/res/androID"    androID:shape="rectangle"><!-- 内部颜色 --><solID androID:color="#FFF"/><!-- 边缘线条颜色 --><stroke androID:wIDth="1.0px" androID:color="#776751"/><!-- 圆角的幅度 --><corners    androID:radius="10px"/></shape>
修改ImageVIEw颜色xml
androID:tint="#ffffff"
java
imageVIEw.setcolorFilter(color.WHITE);


gravity

gravity我一直乱写…这个不行就换一个,不过还是要认真记一下

androID:gravity=
这个是针对控件里的元素来说的,用来控制元素在该控件里的显示位置。
例如,在一个button按钮控件中设置如下两个属性,androID:gravity="left"和androID:text=“提交”,这时button上的文字“提交”将会位于button的左部。

androID:layout_gravity=
这个是针对控件本身而言,用来控制该控件在父控件中的位置。同样,当我们在button按钮控件中设置androID:layout_gravity="left"属性时,表示该button按钮将位于界面的左部。

特殊情况

当我们采用linearLayout布局时,有以下特殊情况需要我们注意:

(1)当 androID:orIEntation=“vertical” 时, androID:layout_gravity只有水平方向的设置才起作用,垂直方向的设置不起作用。

(2)当 androID:orIEntation=“horizontal” 时, androID:layout_gravity只有垂直方向的设置才起作用,水平方向的设置不起作用。

gravity和layout_gravity的属性一览表↓

横竖屏切换

横竖屏切换解决方案——静态动态设置+生命周期

密码显示加粗样式隐藏

settransformationMethod和setinputType区别?
用showPassword不知道怎么简化?
简化代码!
具体看我的这篇博客——EditText密码明文暗文+以星号*显示

更换字体

Font
把ttf格式字体粘到assets目录下

xml中
设置typeface属性java中
moldPswTv.setTypeface(Typeface.createFromAsset(getAssets(), "icomoon.ttf"));

第二个参数是assets下的路径

更换ImageVIEw图片
mIv.setimageDrawable(getResources().getDrawable(R.drawable.ic_unvisible));

imageVIEw.setimageBitmap(bm); //要求传递一个bitmap对象
imageVIEw.setimageDrawable(drawable); //要求传递一个drawable对象
imageVIEw.setimageResource(ID); //要求传递一个资源ID


设置控件可见与隐藏

可见(visible)
XML文件:androID:visibility=“visible”
Java代码:vIEw.setVisibility(VIEw.VISIBLE);

不可见(invisible)
XML文件:androID:visibility=“invisible”
Java代码:vIEw.setVisibility(VIEw.INVISIBLE);

隐藏(GONE)
XML文件:androID:visibility=“gone”
Java代码:vIEw.setVisibility(VIEw.GONE);

注:当控件visibility属性为INVISIBLE时,textvIEw依然会占据那部分位置;而控件属性为GONE时,界面则不保留textvIEw控件所占有的空间。

Dialog&PopupWindow

要d出这样一个d窗


刚开始用的popupwindow,因为没接触过觉得好玩,但是实现的时候发现在 点击背景d窗不消失 和 点击BACK 键d窗不消失 这两点上,不太容易实现,找了网上的方法但是实施的时候并不如意

PopupWindow依附的布局就是背景布局;引入d窗布局时要先写一个VIEw,vIEw引入layout布局,再new一个popupWindow,此时参数为(VIEw,宽,高,focusable)button由于是在d窗里的,所以不能直接用findVIEwByID(),会找不到,要用vPopupWindow.findVIEwByID(),在popupWindow的VIEw里找
private voID showpopupWindow() {        //引入依附的布局        VIEw parentVIEw = LayoutInflater.from(ChangePwdActivity.this).inflate(R.layout.bbg_appportal_change_password_tablet_activity, null, false);        LayoutInflater inflater = (LayoutInflater) this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);        //引入d窗布局        VIEw vPopupWindow = inflater.inflate(R.layout.bbg_appportal_change_password_tablet_success, null, false);        if (popupWindow == null) {            popupWindow = new PopupWindow(vPopupWindow, Actionbar.LayoutParams.WRAP_CONTENT, Actionbar.LayoutParams.WRAP_CONTENT, true);            popupWindow.setoutsIDetouchable(false);            popupWindow.setBackgroundDrawable(null);    //为popWindow设置一个背景            //相对于父控件的位置(例如正中央Gravity.CENTER,下方Gravity.BottOM等),可以设置偏移或无偏移            popupWindow.showAtLocation(parentVIEw, Gravity.CENTER, 0, 0);        }        button mSuccessBtn = vPopupWindow.findVIEwByID(R.ID.pwd_confirm_btn);        mSuccessBtn.setonClickListener(this);    }
setoutsIDetouchable(false)可以使点击背景d窗不消失,但是要在setFocusable(false) (让d窗不聚焦)以后才能有作用,但是这样d窗里的内容就点击不到了这个popupWindow 我无法实现点击其他地方也不消失,找了很多方法包括onKey监听键盘都行不通……
赶紧换Dialog一样是利用LayoutInflate 引入布局,LayoutInflater.from(ChangePwdActivity.this)这个参数是context重点!设置setCancelable(false),点击back键和背景d框都不会消失啦
private voID showDialog() {        LayoutInflater inflater = LayoutInflater.from(ChangePwdActivity.this);        relativeLayout layout = (relativeLayout) inflater.inflate(R.layout.bbg_appportal_change_password_tablet_success, null);        AlertDialog.Builder builder = new AlertDialog.Builder(ChangePwdActivity.this);        builder.setVIEw(layout);        //设置不可取消        builder.setCancelable(false);        AlertDialog dialog = builder.create();        Window window = dialog.getwindow();        //设置d框位置        WindowManager.LayoutParams lp = dialog.getwindow().getAttributes();        window.setGravity(Gravity.CENTER);        window.setAttributes(lp);        dialog.show();		        button mSuccessBtn = dialog.findVIEwByID(R.ID.pwd_confirm_btn);        mSuccessBtn.setonClickListener(this);    }

参考文章:
https://blog.csdn.net/m000000l/article/details/52913077
https://blog.csdn.net/yueyuanyu_123/article/details/79054255
https://blog.csdn.net/shakespeare001/article/details/7843460

总结

以上是内存溢出为你收集整理的定制项目——修改密码功能全部内容,希望文章能够帮你解决定制项目——修改密码功能所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1120019.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-29
下一篇2022-05-29

发表评论

登录后才能评论

评论列表(0条)

    保存