背景
Android Studio是由Google开发的一个Android应用程序开发环境,它基于IntelliJ IDEA,专门用于Android应用程序的开发。使用Android Studio,开发人员可以轻松创建Android应用程序,包括手持设备、平板电脑、Android TV、Android Auto和Android Wear等。 Android Studio提供了一系列的开发工具和功能,例如代码编辑器、虚拟设备管理器、测试工具、调试工具、版本控制和构建工具,使开发人员能够更加高效地进行Android应用程序的开发。
存在的问题
由于手机 与互联网的紧密联系,个人隐私很难得到保守。除了上网过程中经意或不经意留下的个人足迹,Google这个巨人也时时站在你的身后,洞穿一切,因此,互联网的深入将会带来新一轮的隐私危机。
项目运行调试
我们可以通过代码的形式实现我们想的到的效果有没有实现,可以通过这些实现代码的调试
通过log.v 输出沉余信息
通过log.d 输出调试信息
通过log.i 输出普通信息
通过log.w 输出警告信息
通过log.e 输出错误信息
通过样式构造页面
在layout设置属性
android:txt 设置文本内容
android:textColor 设置文本颜色
android:textSize 设置文本大小
android:textAppearance 设置文本样式
android:gravity设置文本对齐方式
android:singleLine 设置文本单行显示
android:ellipsize 设置文本超出范围的省略方式
android:focusable 设置是否获得焦点
android:textStyle 设置字体风格如:bold 粗体 italic 斜体
android:shadowColor 指定文本阴影的颜色
android:shadowRadius 阴影的半径
android:shadowDx 阴影横坐标
android:shadowDy 阴影的纵坐标
通过学习我学会了翻页类组件的使用
View pager 翻页视图控件的基础属性和方法
setAdapter 设置页面项的适配器,pageradapter及其子类
setCurrentitem 设定当前页面
addOnPageChangeListener 设置页面翻页视图的页面切换监听器
onPageScrollStateChanged 页面滑动状态变化时触发
onPageScrolled 页面滑动过程中触发
onPageSelected 选中页面时,滑动结束时触发
实现一个登录页面
实现一个登录
package com.example.myqq; import androidx.appcompat.app.AppCompatActivity; import android.content.Intent; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; public class MainActivity extends AppCompatActivity { private static final String TAG = "MainActivity"; private EditText qqUsername,qqPassword; private Button qqLoginBtn; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.qqlogin_actuvuty); Intent intent = new Intent(MainActivity.this(从哪里来), MainActivity.class(到哪里去)); // 定义了从哪来到哪去 // startActivity(intent); init_reiource(); qqLoginBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { String username = qqUsername.getText().toString(); String password = qqPassword.getText().toString(); Log.d(TAG,"username:"+ username); Log.d(TAG, "password:" +password); if (username.equals("admin")&&password.equals("123")){ Toast.makeText(MainActivity.this, "密码正确", Toast.LENGTH_SHORT).show(); }else { Toast.makeText(MainActivity.this, "密码错误", Toast.LENGTH_SHORT).show(); } } }); } private void init_reiource() { qqUsername = (EditText) findViewById(R.id.qqUsername); qqPassword = (EditText) findViewById(R.id.qqPassword); qqLoginBtn = (Button) findViewById(R.id.qqLoginBtn); } }
package com.example.myqq; import androidx.annotation.NonNull; import androidx.appcompat.app.AppCompatActivity; import android.annotation.SuppressLint; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.widget.ProgressBar; import android.widget.TextView; import java.util.Random; public class MainActivity2 extends AppCompatActivity { private ProgressBar pb1; private int start=0,maxprogress; private TextView mtext; private Handler mHandler=new Handler(){ @Override public void handleMessage(@NonNull Message msg) { super.handleMessage(msg); switch (msg.what){ case 0: mtext.setText(start+" %");//更新进度 pb1.setProgress(start);break; } } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main2); pb1= findViewById(R.id.progressBar); mtext = findViewById(R.id.tv_progress); maxprogress = pb1.getMax(); } @Override protected void onStart() { super.onStart(); new Thread() { @Override public void run() { while (true) { try { Thread.sleep(500);//线程休眠0.5s int a = new Random().nextInt(10);//产生一个10以内的随机数 start += a; if(start >=100)start=100; mHandler.sendEmptyMessage(0);//在安卓里。我们不能直接在线程中更新UI,这里用Handler消息处理 if (start >= maxprogress)//如果进程超过最大值 break; } catch (InterruptedException e) { e.printStackTrace(); } } } }.start(); } }
layout的页面需要自己设计