我的编程空间,编程开发者的网络收藏夹
学习永远不晚

【Android】Android UI 开发_问答_3

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

【Android】Android UI 开发_问答_3

Content对不同屏幕的支持按钮文本框复选框Toast一个布局案例 对不同屏幕的支持

屏幕大小的分类有哪些?

small,normal,large,xlarge

密度的分类有哪些?

low (ldpi),medium (mdpi),high (hdpi),extra high (xhdpi)

屏幕的方向有哪些?

landscape,portrait,横向和纵向

为什么需要根据屏幕不同来定义不同的布局文件?不同大小屏幕的布局文件怎么存放?

屏幕不同布局需求不同,定义不同的布局文件后,
系统从对应的布局目录中以你的app所运行的设备的屏幕大小自动调入对应的布局文件 同一目录下,且文件名必须是一样的,只是内容不同
MyProject/res/layout/main.xml
              layout-land/main.xml
              layout-large/main.xml
              layout-large-land/main.xml

为什么需要根据屏幕密度提供不同的bitmap资源?怎么做?

提高在不同屏幕密度上的图像质量 ldpi 的资源并不总是必须的,
当你提供 hdpi 的资源的时候,系统会缩放一半适应 ldpi 屏幕
MyProject/res/drawable-xhdpi/awesomeimage.png
              drawable-hdpi/awesomeimage.png
              drawable-mdpi/awesomeimage.png

不同密度的比例是什么?

xxhdpi: 3.0
xhdpi: 2.0
hdpi: 1.5
mdpi: 1.0 (baseline参照)
ldpi: 0.75 按钮

根据按钮上显示的内容,按钮可以分为几种?分别用什么属性设置?

有文本,有图标,二者都有,共三种 文本,Button,用 text 属性设置
图标,ImageButton,用 class="lazy" data-src 设置
文本 + 图标,Button,用 text 设置文本,用 drawableXXX 设置图标

按钮的onClick属性有什么用?怎么用?它的值所指定的响应方法在哪里定义,有什么特殊要求?方法的参数是什么?

定义一个按钮的事件处理器
用户单击按钮时,Button 对象接收一个 单击 事件
添加 onClick 属性的作用就是处理这个事件 添加该属性,属性值是对事件进行响应的 方法名 在 Activity 中定义,必须是 public、返回 void 一个唯一的View参数

还可以怎么设置按钮的监听方法?代码模板是什么?望大家理解该模板

Button button = (Button) findViewById(R.id.button_send);
button.setOnClickListener(new View.OnClickListener() {
    public void onClick(View v) {
        // Do something in response to button click
    }
});

如何定义按钮的样式?

设置
android:backgroud
属性为一个 drawable 或 color 资源
也可以应用某种样式

如何定义无边框按钮?

如何定制背景?

1.创建三个不同的位图图片,代表 default(无)、pressed(按下) 和 focused(聚焦) 这三种状态
2.把这些图片放在res/drawable/这个工程目录中,图片名应反映对应按钮状态
3.在 res/drawable/ 中创建 button_custom.xml,

//的顺序非常重要,只有当 pressed 和 focused 均为 false 时,default 才会应用

什么是ninepatch图片,该图片中的四条线分别表示什么意义?它的名字怎么命名?相应的xml什么用?里面的子标签什么含义?

Ninepatch(
.9
)图片,可伸缩,有 padding 的图像文件
左边及上边的线定义可伸缩区域,右边及下边的线定义可绘制区域,四周就是 padding name.9.png 见上面的代码

怎么设置按钮的“.9”背景图片?

如何使用android sdk中的制作.9文件的工具?如果不设置padding线,那内容到边之间的padding怎么确定,实验一下?

将上下左右的线拉到对应位置,然后保存
链接 制作.9文件.

如何在studio中显示代码的行号?学会看错误提示信息,这很重要

1.在代码左边空白区域右击,选择 Show Line Numbers
2.File > Settings > Editor > General > Appearance > Show Line Numbers 文本框

输入文本框的标签是什么?

EditText

如何指定输入文本框的类型?如何组合输入模式?

通过
android:inputType
指定输入类型,因而确定键盘类型
例如 textEmailAddress、phone 等 使用 | ,来同时组合设置多个值

标签属性的值是不是可以通过java代码进行修改?

可以

landscape和portrait什么区别?如何在虚拟机上切换?

landscape,横向
portrait,纵向 找到 手机旋转的一个图标

如何设置虚拟机的物理键盘或虚拟键盘?

Settings > Language & input > Default > Hardware

什么是输入键盘的action?默认值是什么?如何设置该action?如何监听该动作(监听模板代码)?

键盘右下角的按钮,即用户输入完成后的动作 Done
若没有显式指定action,系统会查看是否有设置了
android:focusable
的域 (不一定是文本框),
若有,系统会执行本文本框的 actionNext 动作,这样用户可以进行下一个域的输入
若无,执行文本框的 actionDone 动作 通过
android:imeOptions
监听
EditText editText = (EditText) findViewById(R.id.search);
editText.setOnEditorActionListener(new OnEditorActionListener() {
    @Override
    public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
        boolean handled = false;
        if (actionId == EditorInfo.IME_ACTION_SEND) {
            sendMessage();
            handled = true;
        }
        return handled;
    }
});

如何添加其他的键盘flag与提供自动补全?如何在strings.xml中定义字符数组资源?

设备 landscape 模式下,
阻止进入全屏输入模式
android:imeOptions="flagNoExtractUi"
提供自动补全
1.AutoCompleteTextView 标签加入布局
2.定义保存有所有文本补全的数组,放在 res/values/strings.xml 中
3.在 Activity 或 Fragment 中写入代码
//获取布局文件中AutoCompleteTextView的引用
AutoCompleteTextView textView = (AutoCompleteTextView) findViewById(R.id.autocomplete_country);
// 从资源中获取字符数组
String[] countries = getResources().getStringArray(R.array.countries_array);
// 创建adapter,并把它设置到AutoCompleteTextView中
ArrayAdapter adapter =
        new ArrayAdapter(this, android.R.layout.simple_list_item_1, countries);
textView.setAdapter(adapter);
例如

        Algeria
        American Samoa
        Angola
        ...

如何在java代码中获取字符数组资源从而进行操作?理解代码模板

获取资源
// 从资源中获取字符数组
String[] countries = getResources().getStringArray(R.array.countries_array);
复选框

什么是复选框?在布局文件中是哪个标签?

允许用户选择若干项,CheckBox

复选框后的文字怎么加上?

用 text 属性

如何设置复选框的单击事件处理方法?若干复选框可以用同一个事件处理方法进行处理吗?如何在方法中区分选择的是哪个复选框?

public void onCheckboxClicked(View view) {
    // Is the view now checked?
    boolean checked = ((CheckBox) view).isChecked();
    // Check which checkbox was clicked
    switch(view.getId()) {
        case R.id.checkbox_meat:
            if (checked) {System.out.println("");}
            else {}
            break;
        case R.id.checkbox_cheese:
            if (checked) {}
            else {}
            break;
        // TODO: Veggie sandwich
    }
}

如何修改activity的布局?一个activity同时可以有几个布局?

更改相应的 .java 文件中 onCreate 方法中
setContentView(R.layout.布局文件名);
同时应该只能有一个

什么是无线按钮?在布局文件中是哪个标签?为什么要把这种标签放在RadioGroup中?RadioGroup是哪个布局的子类,这意味着什么?如何设置无线按钮的默认选择?

互斥的⚪按钮,RadioButton 为了确保互斥 LinearLayout的子类 可以指定水平或垂直方向 设置 checked 属性

如何设置无线按钮的单击事件处理方法?

和 CheckBox 的类似

什么是切换按钮?是哪些标签?如何在java程序中改变按钮的状态?如何响应用户对按钮的操作?(代码模板)

可以在两种状态中切换 ToggleButton 和 Switch
//java 中改变 ToggleButton 的状态
ToggleButton toggleButton = (ToggleButton)findViewById(R.id.toggle_button);
toggleButton.setChecked(true);
toggleButton.toggle();
//响应用户操作
ToggleButton toggle = (ToggleButton) findViewById(R.id.togglebutton);
toggle.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
        if (isChecked) {
            // The toggle is enabled
        } else {
            // The toggle is disabled
        }
    }
});

定义某个RadioButton的android:checked为true,意味着该项是默认选中的,但如果并没有定义它的id,在运行时会发生什么情况?

RadioButton 不互斥 Toast

注释的快捷键是什么?

Ctrl + /

Toast是什么?它也是放在布局文件中吗?makeText方法的三个参数什么含义?

弹出的一个提示信息 不是,代码打开 第一个为 app 的Context,
第二个为显示的文本信息,
第三个为 toast 持续的时间

什么是context?

Context是一个场景,描述的是一个应用程序环境的信息,即上下文,
代表与操作系统的交互的一种过程
简单来说就是上下文环境

如何定义toast的显示?

例 将 toast 定位在左上角
toast.setGravity(Gravity.TOP|Gravity.LEFT, 0, 0);

如何创建定制的Toast视图?inflater功能是什么?如何设置这种方式的toast中的文字?如何将定制布局应用到toast实例?通过setView方法设置视图的Toast,怎么构造toast实例?

定制一个布局文件 toast_layout.xml

将布局文件取出 取出布局中的 TextView 然后 setText 用 setView 将取出的 layout 应用到实例 toast 中 用 new,构造函数参数是 上下文环境的实例 context
LayoutInflater inflater = getLayoutInflater();
View layout = inflater.inflate(R.layout. toast_layout, (ViewGroup) findViewById(R.id.toast_layout_root));
TextView text = (TextView) layout.findViewById(R.id.text);
text.setText("This is a custom toast");
Toast toast = new Toast(getApplicationContext());
toast.setGravity(Gravity.CENTER_VERTICAL, 0, 0);
toast.setDuration(Toast.LENGTH_LONG);
toast.setView(layout);
toast.show();
一个布局案例

layout_weight这个属性是什么含义?

表示在其父 ViewGroup 中的宽度
例 因为 LinearLayout 是布局的根 view,
它的大小又设置为 "match_parent",所以它将充满整个屏幕

RadioGroup是什么?其什么作用?它的父类是哪个?默认方向是什么?怎么改掉?

无线按钮的单选组合框 用来放无线按钮,确保按钮互斥性 LinearLayout 类 垂直方向,vertical 通过
android:orientation
更改

RadioButton是什么?为什么要加入RadioGroup中?如何默认选中?它的id有什么特别的用处?

无线按钮 确保互斥 checked 属性设置为 true 用来区分选中的无线按钮,无 id 时互斥性消失

怎么将MainActivity的布局改掉?

找到 onCreate 回调方法,更改代码中布局文件名 activity_main2
setContentView(R.layout.activity_main2);

如何加入输入的提示信息?

hint 属性,无输入时显示的信息

如何将EditText指定为输入密码类型的数据?

inputType 属性,设置为 textPassword,或 numberPassword 或其他 …Password
作者:Earnest~


免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

【Android】Android UI 开发_问答_3

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

【Android】Android UI 开发_问答_3

Content对不同屏幕的支持按钮文本框复选框Toast一个布局案例 对不同屏幕的支持 屏幕大小的分类有哪些? small,normal,large,xlarge 密度的分类有哪些? low (ldpi),medium (mdpi),hig
2022-06-06

【Android】Android UI 开发_问答_1

ContentUI 概览显示度量单位 UI 概览 定义布局的手段有几种? 两种声明布局的方式: <在 XML 中声明 UI 例如 元素用于创建一个 LinearLayout 视图组 (ViewGroup) <运行时实例化布局元素,编程创建
2022-06-06

【Android】Android UI 开发_问答_2

Content常见布局线性布局表格布局网格布局一个简单的UI主题和样式 常见布局 如何在MainActivity.java中设置activity的布局文件 在 onCreate 回调方法中 protected void onCreate(B
2022-06-06

【Android】Android UI 开发_习题

Content单选题判断题填空题 ByMyself 单选题 下列表示Toast较长时间显示的是()。 A、Toast.LENGTH_LONG B、Toast.LONG C、Toast.LENGTH_SHORT D、Toast.SHORT 在
2022-06-06

【Android】Android开发环境的设置与准备_问答

Content1. Java开发环境的安装和配置2. Android Studio的安装、配置3. 虚拟机的安装4. Android Studio 连接 Genymotion 老师网页的问题 1. Java开发环境的安装和配置 为什么要安装
2022-06-06

【Android】Android 概述_问答

ContentAndroid 概述创建Android项目 老师文档里的问题 Android 概述 为什么要了解Android的版本发展? 写出的App如果用到了较新版本的API,那么在运行早期版本的硬件设备上就无法运行 需要考虑写出的App
2022-06-06

Android项目开发之UI设计器

开发人员可以用以下两种方式声明UI:一是通过.xml文件(不带预览界面)或者.axml文件(带预览界面)来描述;二是用C#代码实现。 用.axml文件描述用户界面(UI)时,设计器分为【设计】视图和【源】视图。这种方式的优点是:可以尽可能
2022-06-06

Android开发 -- UI界面之threme和style

Android系统的themes.xml和style.xml(位于\base\core\res\res\values\)包含了很多系统定义好的style,建议在里面挑个合适的,然后再继承修改。 一、threme android中的主题一般用
2022-06-06

Android UI开发 View自绘控件 分享

很多时候想要设计漂亮的Android UI,使用Android自带的控件无法满足我们的需要就要考虑自绘控件,在Android界面显示类View,可以通过继承扩展重写相关方法来实现我们的图形绘制。首先我们需要了解下View类的底层实现,在SD
2022-06-06

Android UI设计与开发之ViewPager怎么用

这篇文章主要介绍了Android UI设计与开发之ViewPager怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、ViewPager实现的效果图 二、ViewPa
2023-05-30

android开发教程之handler异步更新ui

其实文字游戏程序很简单,就是一个view和一个Activity,在利用下handier和postInvalidate()更新UI 调用Handler.post(Runnable r)方法,Runnable运行在UI所在线程,所以可以直接调用
2022-06-06

【Android】数据存储_问答

Content保存数据到文件使用共享首选项 (Shared Preferences)序列化SQLite数据库 保存数据到文件在android设备中什么是internal和external存储区? internal,内部存储区,不易失,保存的
2022-06-06

Android开发问题有哪些

这篇“Android开发问题有哪些”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Android开发问题有哪些”文章吧。1.如
2023-07-04

Android开发常见问题总结

本文总结分析了Android开发常见问题。分享给大家供大家参考,具体如下: 1. 在ui中使用scrollview之后,假如复写activity的onkeydown或onkeyup事件,若果焦点在scrollview上,则这两个事件是不触发
2022-06-06

Android开发之HTTP访问网络

本文实例为大家详细介绍了Android开发之HTTP访问网络的相关代码,供大家参考,具体内容如下代码1:package com.ywhttpurlconnection; import android.app.Activity; import
2022-06-06

Android微信支付开发问题

并不是所有的BAT的API都是非常好用的,微信支付就有不少的缺陷,总结一下微信支付实现中出现的问题 坑点一: PayReq的参数 sign的生成 PayReq对象有个参数为packageValue 而sign生成时要用到pack
2022-06-06

Android 开发环境配置问题

首先下载 android SDK 最新版。不过最新版的 SDK 已经明确声明“The Android SDK archive now only contains the tools. It no longer comes populated
2022-06-06

Android开发之子线程操作UI的几种方法

在Android项目中经常有碰到这样的问题,在子线程中完成耗时操作之后要更新UI,下面就自己经历的一些项目总结一下更新的方法:在看方法之前需要了解一下Android中的消息机制。 方法1 Activity.runOnUiThread 方法
2022-06-06

编程热搜

  • Android:VolumeShaper
    VolumeShaper(支持版本改一下,minsdkversion:26,android8.0(api26)进一步学习对声音的编辑,可以让音频的声音有变化的播放 VolumeShaper.Configuration的三个参数 durati
    Android:VolumeShaper
  • Android崩溃异常捕获方法
    开发中最让人头疼的是应用突然爆炸,然后跳回到桌面。而且我们常常不知道这种状况会何时出现,在应用调试阶段还好,还可以通过调试工具的日志查看错误出现在哪里。但平时使用的时候给你闹崩溃,那你就欲哭无泪了。 那么今天主要讲一下如何去捕捉系统出现的U
    Android崩溃异常捕获方法
  • android开发教程之获取power_profile.xml文件的方法(android运行时能耗值)
    系统的设置–>电池–>使用情况中,统计的能耗的使用情况也是以power_profile.xml的value作为基础参数的1、我的手机中power_profile.xml的内容: HTC t328w代码如下:
    android开发教程之获取power_profile.xml文件的方法(android运行时能耗值)
  • Android SQLite数据库基本操作方法
    程序的最主要的功能在于对数据进行操作,通过对数据进行操作来实现某个功能。而数据库就是很重要的一个方面的,Android中内置了小巧轻便,功能却很强的一个数据库–SQLite数据库。那么就来看一下在Android程序中怎么去操作SQLite数
    Android SQLite数据库基本操作方法
  • ubuntu21.04怎么创建桌面快捷图标?ubuntu软件放到桌面的技巧
    工作的时候为了方便直接打开编辑文件,一些常用的软件或者文件我们会放在桌面,但是在ubuntu20.04下直接直接拖拽文件到桌面根本没有效果,在进入桌面后发现软件列表中的软件只能收藏到面板,无法复制到桌面使用,不知道为什么会这样,似乎并不是很
    ubuntu21.04怎么创建桌面快捷图标?ubuntu软件放到桌面的技巧
  • android获取当前手机号示例程序
    代码如下: public String getLocalNumber() { TelephonyManager tManager =
    android获取当前手机号示例程序
  • Android音视频开发(三)TextureView
    简介 TextureView与SurfaceView类似,可用于显示视频或OpenGL场景。 与SurfaceView的区别 SurfaceView不能使用变换和缩放等操作,不能叠加(Overlay)两个SurfaceView。 Textu
    Android音视频开发(三)TextureView
  • android获取屏幕高度和宽度的实现方法
    本文实例讲述了android获取屏幕高度和宽度的实现方法。分享给大家供大家参考。具体分析如下: 我们需要获取Android手机或Pad的屏幕的物理尺寸,以便于界面的设计或是其他功能的实现。下面就介绍讲一讲如何获取屏幕的物理尺寸 下面的代码即
    android获取屏幕高度和宽度的实现方法
  • Android自定义popupwindow实例代码
    先来看看效果图:一、布局
  • Android第一次实验
    一、实验原理 1.1实验目标 编程实现用户名与密码的存储与调用。 1.2实验要求 设计用户登录界面、登录成功界面、用户注册界面,用户注册时,将其用户名、密码保存到SharedPreference中,登录时输入用户名、密码,读取SharedP
    Android第一次实验

目录