Android的界面布局建议用xml编写,可有效与java代码隔开,这里采用相对布局RelativeLaout实现QQ登录界面布局
1.为实现QQ企鹅图标效果,在左侧项目目录下打开app/src/main/res/,将自己准备的qq图案复制后paste(粘贴)到/drawable文件夹,命名为qqimg(如果自己命名最好也以小写纯英文字母命名不然红线报错)

2.为实现账号和密码输入框的浅灰色圆角样式,在app/src/main/res/drawable右键新建new>DrawableResourceFile,命名为“editviewboader”
在editviewboader.xml中写入代码如下
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="#EDEDED"/><!--填充色-->
<corners
android:radius="70dp">
</corners><!--边缘曲度-->
<!-- <stroke android:color="@color/black" android:width="20dp"/>边框颜色和·宽度·-->
</shape>
3. 为了实现圆形登录按钮,在app/src/main/res/drawable右键新建new>DrawableResourceFile,命名为“btnstyle”写入代码如下:
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<gradient android:startColor="#03A9F4" android:centerColor="#66BFDA" android:endColor="#2196F3"/>
<corners
android:radius="300dp"/><!-- 设置按钮圆形边框 -->
</shape>
4.添加界面中需要出现的文本内容,“QQ,QQ号/手机号/邮箱”等。
打开app/src/main/res/values/strings.xml,写入代码如下
<resources>
<string name="app_name">test04–2</string>
<string name="contentdescript">TODO</string>
<string name="zhanghao">QQ号/手机号/邮箱</string>
<string name="mima">输入密码</string>
<string name="qq">QQ</string>
<string name="qqxieyi">已阅读并同意服务协议和QQ隐私保护指引</string>
</resources>
5.因为界面中账号与密码的输入框样式是相同的样式style,写一个style来减少代码重复。
打开app/src/main/res/values/themes.xml(有的android版本是style.xml),写入代码如下
<resources xmlns:tools="http://schemas.android.com/tools">
<!-- Base application theme. -->
<style name="Theme.Test042" parent="Theme.MaterialComponents.DayNight.NoActionBar">
</style>
<style name="editview"><!--自定义账号与密码两个输入框的style-->
<item name="background">@color/black</item>
<item name="android:layout_marginTop">20dp</item>
<item name="android:layout_width">310dp</item>
<item name="android:layout_height">60dp</item>
<item name="android:layout_centerHorizontal">true</item><!--控件整体居中-->
<item name="android:gravity">center</item><!--控件内部输入内容居中-->
<item name="android:textSize">20sp</item><!--输入的字体大小-->
</style>
</resources>
6.打开app/src/main/res/layout/activity_main.xml,界面布局代码就在此处编写
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity"
>
<!-- 去掉程序创建后上方的默认标题栏的方法:
打开 src /res /values /themes.xml(也可能是styles.xml)-->
<ImageView android:id="@+id/qqimg"
android:layout_width="90dp"
android:layout_height="110dp"
android:layout_centerHorizontal="true"
android:translationX="-10dp"
android:layout_marginTop="100dp"
android:background="@drawable/qqimg"
android:contentDescription="@string/contentdescript"
/>
<!--1.给图片加上id以设置下一个textview"QQ"位于图片右侧
2.设置图片大小
3.图片通过centerhorizontal横坐标居中,
4.再translationX在横坐标居中的基础上左偏移10dp
5.设置img为/drawable下自定义的图片"qqimg"-
把图片添加到drawable下时,图片的命名方式最好为纯英文小写字母!否则会变红-->
<TextView android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="130dp"
android:layout_toEndOf="@id/qqimg"
android:text="@string/qq"
android:textSize="50sp"
android:textColor="@color/black"
/>
<!--1.放置一个textview显示标题"QQ"
2.设置width,height为自适应,marginTop与顶部距离为130dp
3.toEndOf位于图片QQ的右边
4.textSize和Color设置了字体样式(颜色大小)
-->
<EditText
android:layout_below="@id/qqimg"
android:id="@+id/edit1"
style="@style/editview"
android:hint="@string/zhanghao"
android:background="@drawable/editviewboader"
android:autofillHints="username"
android:inputType="number"
tools:ignore="LabelFor"/>
<!--1.放置一个EditText用于输入账号,below位于qqimg的下方,并赋予id"
2.设置style为自定义的editview
3.hint设置输入框内部提示信息
4.background为自定义的editviewboarder
5.定义输入数据类型为number
-->
<EditText
android:layout_below="@id/edit1"
style="@style/editview"
android:hint="@string/mima"
android:background="@drawable/editviewboader"
android:layout_centerHorizontal="true"
android:autofillHints="password"
android:inputType="numberPassword"/>
<!--1.放置一个EditText用于输入密码,below位于edit1的下方"
2.设置style为自定义的editview
3.hint设置输入框内部提示信息
4.background为自定义的editviewboarder
5.定义输入数据类型为password,使输入的数据隐藏为”*****“ -->
<CheckBox android:layout_width="wrap_content" android:layout_height="wrap_content"
android:layout_below="@id/edit1"
android:layout_marginTop="100dp"
android:layout_centerHorizontal="true"
android:text="@string/qqxieyi"/>
<!--1.放置checkbox勾选框来勾选用户协议"
2.设置位置居于edit1下方100dp,横向居中 -->
<Button
android:layout_width="80dp"
android:layout_height="80dp"
android:layout_centerHorizontal="true"
android:layout_marginTop="450dp"
android:background="@drawable/btnstyle"/>
<!--1.放置Button按钮来表示登录按钮"
2.设置位置居于顶部往下450dp,横向居中
3.应用btnstyle样式-->
</RelativeLayout>
7.效果图:

其实做自媒体的成本并不高,入门只需要一部手机即可!在手机上找视频素材、使用手机剪辑视频、最后使用手机发布视频作品获得收益!方法并不难,今天这期内容就来给粉丝们分享一种小方法,每天稳定收益100-300,抓紧点赞收藏!1、找素材(1)使用手机拍摄自己喜欢的经典段落,使用程序把文案内容提取出来(2)也可以在豆瓣、知乎、微博等网站中找一些自己需要的文案素材(3)把文案进行润色修改,可以加入一些自己的观点(4)视频素材可以使用软件中自带的素材,也可以在素材网站中下载完整版的素材2、文案配音(1)把复制好的文案直接导入小程序中(2)调整音色、音调后一键合成音频即可(3)可以选择自己朗读配音,需要花一点时
我需要从站点抓取数据,但它需要我先登录。我一直在使用hpricot成功地抓取其他网站,但我是使用mechanize的新手,我真的对如何使用它感到困惑。我看到这个例子经常被引用:require'rubygems'require'mechanize'a=Mechanize.newa.get('http://rubyforge.org/')do|page|#Clicktheloginlinklogin_page=a.click(page.link_with(:text=>/LogIn/))#Submittheloginformmy_page=login_page.form_with(:act
3月26日,映宇宙(HK:03700,即“映客”)发布截至2022年12月31日的2022年度业绩财务报告。财报显示,映宇宙2022年的总营收为63.19亿元,较2021年同期的91.76亿元下降31.1%。2022年,映宇宙的经营亏损为4698.7万元,2021年同期则为净利润4.57亿元;期内亏损(净亏损)为1.68亿元,2021年同期的净利润为4.33亿元;非国际财务报告准则经调整净利润为3.88亿元,2021年同期为4.82亿元,同比下降19.6%。 映宇宙在财报中表示,收入减少主要是由于行业竞争加剧,该集团对旗下产品采取更为谨慎的运营策略以应对市场变化。不过,映宇宙的毛利率则有所提升
我为Devise用户和管理员提供了不同的模型。我也在使用Basecamp风格的子域。除了我需要能够以用户或管理员身份进行身份验证的一些Controller和操作外,一切都运行良好。目前我有authenticate_user!在我的application_controller.rb中设置,对于那些只有管理员才能访问的Controller和操作,我使用skip_before_filter跳过它。不幸的是,我不能简单地指定每个Controller的身份验证要求,因为我仍然需要一些Controller和操作才能被用户或管理员访问。我尝试了一些方法都无济于事。看来,如果我移动authentica
我想用一个(自己的)omniauth提供商来衡量每秒可以登录多少次。我需要了解此omniauth/oauth请求的性能如何,以及此身份验证是否具有可扩展性?到目前为止我得到了什么:defperformance_auth(user_count=10)bm=Benchmark.realtimedouser_count.timesdo|n|forkdoclick_on'Logout'omniauth_config_mock(:provider=>"foo",:uid=>n,:email=>"foo#{n}@example.net")visit"/account/auth/foo/"enden
我正在使用Ruby和Eventmachine库编写一个应用程序。我真的很喜欢非阻塞I/O和事件驱动系统的想法,我遇到的问题是日志记录。我正在使用Ruby的标准记录器库。并不是说日志记录需要永远,但它似乎不应该阻塞,但它确实阻塞了。是否有某个库将Ruby的标准记录器实现扩展为非阻塞的,或者我应该只调用EM::defer进行日志记录调用?有没有办法让eventmachine已经为我做这件事? 最佳答案 我最终将记录器包装在一个启动线程并具有FIFO队列的单例类中。日志记录会将日志信息转储到队列中,线程只是循环,从队列中拉出内容并使用真正
当尝试创建一个heroku应用程序并通过git推送到它时,我收到以下错误:$herokucreate'"C:\ProgramFiles\ruby-1.9.2\bin\ruby.exe"isnotrecognizedasaninternalorexternalcommand,operableprogramorbatchfile.但是,$ruby-vruby1.9.3p125[i386-mingw32]我已经检查了PATH环境,它肯定包含“C:\ProgramFiles(x86)\ruby-1.9.2\bin”。同样有趣的是,当导航到该目录时,它实际上并不包含名为ruby.exe的文件
我有一个运行Devise的RoR应用程序(Rails4.2、Ruby2.2.0)。我已对其进行设置,以便管理员用户(标识我添加到用户模型的“is_admin”bool值)能够创建新的用户帐户,为他们提供生成的密码和确认电子邮件。这一切都正常工作。我还添加了datetime列pass_changed,当用户更改密码时应该更新它,然后检查created_at以确保自帐户创建以来密码已更改。如果两个日期相同,则用户将被重定向到密码更改表单。我编写了一个程序来检查用户是否更改了密码并将其放在我的application_controller.rb中:defcheck_changed_pass@u
手机访问电脑后AnyViewer可以做什么? 您成功将手机连接到Windows电脑后,然后您可以做任何您想做的事情,例如:查看文件和运行应用程序。电源管理:在远程会话中,点击电源管理,您可以看到三个项目:锁定、重启和关机,供您在不同情况下管理计算机。如果您需要暂时离开远程会话,可以锁定计算机。如果计算机死机,您可以重新启动它,然后再次连接。如果您已完成计算机上的所有工作,您可以使用手机远程关闭它。更改图像质量:当电脑和手机的网络都处于良好状态时,您可以选择高图像质量以获得更好的体验。当网络状况不佳时,您可以选择低图像质量以获得更流畅的操作。 显示桌面:我们无法在手机上按Windows+
恢复出厂设置后数据还在吗?格式化真的彻底吗?数据到底该怎么删?文章目录前言为什么不能彻底删除数据?手机如何彻底删除数据?第一步:恢复出厂设置第二步:手动覆写数据电脑如何彻底删除数据?方法一:命令提示符方法二:文件粉碎方法三:低级格式化硬盘总结前言个人数据安全再次成为大家关注的热门话题:在日常使用手机和电脑时,我们可能需要删除一些敏感数据,例如银行账户信息、个人照片、聊天记录等。数据删除的目的是保护个人隐私,避免泄露。以下是一些关于如何删除数据的方法。恢复出厂设置,不一定彻底清除手机数据电子产品迭代升级速度越来越快,大家家中的旧手机、旧电脑也越来越多,一键删除、格式化、恢复出厂设置能彻底清除个人