持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第1天,点击查看活动详情
使用Idea开发安卓App,只需要安卓SDK插件既可;
最近的Idea版本都包含有安卓开发的相关环境:
安装安卓SDK:
首先选择File -> Project -> 创建工程,
点击Android,然后选择Install SDK按钮,开始安装SDK;
创建安卓工程
重复以上步骤,在创建工程页面,选择Android,选择IPhone和Tablet选项,输入工程名称和包名,创建一个新工程;
创建完成后的页面如下:
一个gradle工程、包含有一个app的模块,分别有自己的build.gradle文件;
按需修改配置(可选)
按需修改下app文件夹下的gradle文件。修改版本
修改material版本,解决后想的布局页面警告问题(Path.ok()问题)
给页面添加一个按钮
在activity_main.xml文件中添加按钮,可以选择拖拽的方式添加,或者通过代码直接添加
添加一个按钮的代码如下:
<Button android:id="@+id/btn1"
android:text="按住说话"
android:onClick="say"
android:longClickable="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
/>
界面如下:
给按钮添加点击事件
在MainActivity中添加按钮的点击事件和长按监听:
点击函数可以再xml中设置:
android:onClick="say"
定义一个Button, 通过findViewById获取到页面的button 跟button添加一个长按监听事件
长按监听器实现
长按监听器需要实现View.OnTouchListener类; 然后实现其中的onTouch方法;
class MidOnTouchListener implements View.OnTouchListener {
private int long_pressed = 0; // 长按标志符
@Override
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
Thread t = new Thread() {
@Override
public void run() {
super.run();
try {
Thread.sleep(250); } catch (InterruptedException e) {
e.printStackTrace();
}
// 线程未被打断
if (long_pressed == 0) {
long_pressed = 1;
hd.sendMessage()
} else {
long_pressed = 0;
}
}
};
t.start();
}
if (event.getAction() == MotionEvent.ACTION_UP) {
if (long_pressed == 0) { // 标识符未置位
long_pressed = -1;
// TODO: 执行点击对应的方法
} else if (long_pressed == 1) { // 标识符已置位,则为长按
// TODO: 执行长按释放对应的方法
long_pressed = 0;
}
}
return false;
}
定义一个处理器,实际处理业务逻辑
private Handler hd = new Handler(Looper.myLooper()) {
public void handleMessage(Message msg) {
super.handleMessage(msg);
if (msg.what == 111) {
// TODO: 执行长按按下对应的方法
Log.d("say", "长按操作");
}
}
};
安装到手机模拟器测试
启动手机模拟器,在app窗口会出现模拟器选择,选择模拟器安装调试;