1、点击空白处隐藏软键盘

 /*
隐藏软键盘
* */
public boolean dispatchTouchEvent(MotionEvent ev) {
if (ev.getAction() == MotionEvent.ACTION_DOWN) {
View v = getCurrentFocus();
if (isShouldHideInput(v, ev)) { InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
if (imm != null) {
imm.hideSoftInputFromWindow(v.getWindowToken(), 0);
}
}
return super.dispatchTouchEvent(ev);
} if (getWindow().superDispatchTouchEvent(ev)) {
return true;
}
return onTouchEvent(ev);
} public boolean isShouldHideInput(View v, MotionEvent event) {
if (v != null && (v instanceof EditText)) {
int[] leftTop = { 0, 0 }; v.getLocationInWindow(leftTop);
int left = leftTop[0];
int top = leftTop[1];
int bottom = top + v.getHeight();
int right = left + v.getWidth();
if (event.getX() > left && event.getX() < right
&& event.getY() > top && event.getY() < bottom) { } else {
return true;
}
}
return false;
}

2、沉浸式状态栏

        //设置沉浸式状态栏 android 4.4 及以上支持
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
//透明状态栏
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
//透明导航栏
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
}

3、设置导航栏

xml代码:

    <android.support.v7.widget.Toolbar
android:id="@+id/toolbar1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:background="#5caef9"
android:minHeight="50dp"
android:gravity="center"
android:textAlignment="center"
>
</android.support.v7.widget.Toolbar>

后台代码:

        //设置导航栏
Toolbar toolbar = (Toolbar)findViewById(R.id.toolbar1);//鑾峰彇椤甸潰鐨勫伐鍏锋爮 toolbar.setTitle("设置服务");
toolbar.setTitleMarginStart(370);
toolbar.setTitleTextColor(Color.WHITE);
toolbar.setTitleMarginTop(10);
toolbar.setNavigationIcon(R.mipmap.allback);
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(SettingServiceActivity.this,MyselfLoginActivity.class);
startActivity(intent);
}
});

4、获取屏幕宽高和设置控件宽高

        //设置输入框宽高
EditText tvservicepath = (EditText)findViewById(R.id.tvservicepath);
tvservicepath.setText(R.string.serverpath);//获取资源文件
//获取屏幕高宽
WindowManager wm = (WindowManager) this.getSystemService(Context.WINDOW_SERVICE);
DisplayMetrics dm = new DisplayMetrics();
wm.getDefaultDisplay().getMetrics(dm);
int width = dm.widthPixels; // 屏幕宽度(像素)
int height = dm.heightPixels; // 屏幕高度(像素)
float density = dm.density; // 屏幕密度(0.75 / 1.0 / 1.5)
int densityDpi = dm.densityDpi; // 屏幕密度dpi(120 / 160 / 240)
// 屏幕宽度算法:屏幕宽度(像素)/屏幕密度
int screenWidth = (int) (width / density); // 屏幕宽度(dp)
int screenHeight = (int) (height / density);// 屏幕高度(dp) ViewGroup.LayoutParams para;
para = tvservicepath.getLayoutParams();
para.height = screenHeight/2;
para.width = width-50;
tvservicepath.setLayoutParams(para);

5、在手机本地保存数据和读取(参考:https://blog.csdn.net/acm_th/article/details/50009575)

<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"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.savedatademo.MainActivity" > <EditText
android:id="@+id/input"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="请输入" /> <Button
android:id="@+id/btn1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/input"
android:text="保存数据" /> <Button
android:id="@+id/btn2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/btn1"
android:text="读取数据"/> </RelativeLayout>
package com.example.savedatademo;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.PrintStream;
import java.util.Scanner; import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast; public class MainActivity extends Activity { private Button saveBtn = null;
private Button readBtn = null;
private EditText input = null;
private final static String FILE_NAME = "xth.txt"; // 设置文件的名称 @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_main); input = (EditText) findViewById(R.id.input);
saveBtn = (Button) findViewById(R.id.btn1);
readBtn = (Button) findViewById(R.id.btn2); saveBtn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
String data = input.getText().toString();
save(data);
Toast.makeText(MainActivity.this, "保存数据成功!", Toast.LENGTH_SHORT)
.show();
}
});
readBtn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
StringBuffer sb = read();
Toast.makeText(MainActivity.this, "读取数据为:" + sb,
Toast.LENGTH_SHORT).show();
}
});
} private StringBuffer read() {
FileInputStream in = null;
Scanner s = null;
StringBuffer sb = new StringBuffer();
try {
in = super.openFileInput(FILE_NAME);
s = new Scanner(in);
while (s.hasNext()) {
sb.append(s.next());
}
} catch (Exception e) {
e.printStackTrace();
}
return sb;
} private void save(String data) {
FileOutputStream out = null;
PrintStream ps = null;
try {
out = super.openFileOutput(FILE_NAME, Activity.MODE_APPEND);
ps = new PrintStream(out);
ps.println(data);
} catch (Exception e) {
e.printStackTrace();
} finally {
if (out != null) {
try {
out.close();
ps.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
} }

这是追加内容的,如果覆盖,改成:

out = super.openFileOutput(FILE_NAME, Activity.MODE_WORLD_WRITEABLE);

6、代码设置按钮被点击使用performClick()方法。

7、设置控件的显示与隐藏:

View缺省为可见的,在应用可以通过setVisibility 修改View的可见性,

View.VISIBLE View可见,View.INVISIBLE View不可以见,但仍然占据可见时的大小和位置。

View.GONE View不可见,且不占据空间。

android studio开发小笔记1的更多相关文章

  1. Android开发学习之路-Android Studio开发小技巧

    上一次发过了一个介绍Studio的,这里再发一个补充下. 我们都知道,Android Studio的功能是非常强大的,也是很智能的.如果有人告诉你学Android开发要用命令行,你可以告诉他Andro ...

  2. 《Android Studio开发实战 从零基础到App上线》资源下载和内容勘误

    转载于:https://blog.csdn.net/aqi00/article/details/73065392 资源下载 下面是<Android Studio开发实战 从零基础到App上线&g ...

  3. windows平台下Android studio开发环境搭建教程

    最近,Google 已宣布,为了简化 Android 的开发力度,以重点建设 Android Studio 工具,到今年年底将停止支持Eclipse等其他集成开发环境 .而随着Android stud ...

  4. 使用 Android Studio 开发 widget 安卓桌面插件

    •What AppWidget 即桌面小部件,也叫桌面控件,就是能直接显示在Android系统桌面上的小程序: 这么说可能有点抽象,看图: 像这种,桌面上的天气.时钟.搜索框等等,都属于 APP Wi ...

  5. 最强 Android Studio 使用小技巧和快捷键

    写在前面 本文翻译自 Android Studio Tips by Philippe Breault,一共收集了62个 Android Studio 使用小技巧和快捷键. 根据这些小技巧的使用场景,本 ...

  6. Android课程---Android Studio使用小技巧:提取方法代码片段

    这篇文章主要介绍了Android Studio使用小技巧:提取方法代码片段,本文分享了一个快速复制粘贴方法代码片段的小技巧,并用GIF图演示,需要的朋友可以参考下 今天来给大家介绍一个非常有用的Stu ...

  7. Android studio -VSN 使用笔记

    1.Android studio 安装 中文组官网:http://www.android-studio.org/ 常见问题参考: 分支冲突合并 http://blog.csdn.net/tearsmo ...

  8. 使用Android Studio开发J2SE项目方法

    0.前言 最近因为要为项目开发一个底层的Java应用,所以非常偶然的遇到了这样一个问题,过去Eclipse有Java Project而现在手头使用Android Studio并不能直接建立Java应用 ...

  9. Android studio 开发环境搭建

    Android studio 开发环境搭建 一.环境: 下载java jdk:http://www.oracle.com/technetwork/cn/java/javase/downloads/jd ...

随机推荐

  1. 用python输出未来时间,递增

    输入当前时间,之前与之后的365天时间日期 按格式化输出 #!/usr/bin/evn python # -*- coding: UTF-8 -*- # import time import date ...

  2. [Java] Spring 使用

    背景 JavaEE 应用框架 基于IOC和AOP的结构J2EE系统的框架 IOC(反转控制):即创建对象由以前的程序员自己new 构造方法来调用,变成了交由Spring创建对象,是Spring的基础 ...

  3. gdb 调试,当发现程序退出,需要定位程序退出位置时。

    在进入gdb后设置,执行下面语句 handle SIGSEGV nopass handle SIGSEGV nostop 执行程序,触发问题,gdb侧执行c 故障出现时,执行bt,显示堆栈调用.

  4. python基础之错误、调试(异常处理)

    在程序运行过程中,总会遇到各种各样的错误. 有的错误是程序编写有问题造成的,比如本来应该输出整数结果输出了字符串,这种错误我们通常称之为bug,bug是必须修复的. 有的错误是用户输入造成的,比如让用 ...

  5. 从实例分析ELF格式的.gnu.hash区与glibc的符号查找

    前言 ELF格式的.gnu.hash节在设计上比较复杂,直接从glibc源码进行分析的难度也比较大.今天静下心来看了这篇精彩的文章,终于将布隆滤波器.算数运算转为位运算等一系列细节搞懂了(值得一提的是 ...

  6. 删除win10系统下文件默认打开方式的关联-win10配置

    现象 文件默认打开方式错误 链接到老的打开软件 无法图形化重定义关联软件 文件图标关联异常 1. 打开注册表编辑器 win + R regedit 2. 修改注册表 找到以下注册表路径,找到指定的文件 ...

  7. vmware workstation linux虚拟机点击suspend会卡死

    vmware workstation linux虚拟机点击suspend会卡死, 现象如图, 我测过很多发行版都有这个问题 临时解决方案是关闭suspend功能 sudo systemctl mask ...

  8. MegEngine基本概念

    MegEngine基本概念 基本概念 MegEngine 是基于计算图的深度神经网络学习框架. 本文内容会简要介绍计算图及其相关基本概念,以及在 MegEngine 中的实现. 计算图 结合一个简单的 ...

  9. CVPR2020:端到端学习三维点云的局部多视图描述符

    CVPR2020:端到端学习三维点云的局部多视图描述符 End-to-End Learning Local Multi-View Descriptors for 3D Point Clouds 论文地 ...

  10. VB 老旧版本维护系列---兜兜转转有点晕:从服务器通过URL不中转保存的下载

    从服务器通过URL不中转保存的下载 首先引用System.dll 然后新开一个页面,空的,在后台Page_Load方法里写   Dim docPath As String ="" ...