链接 【Android】Android UI 开发_问答_2.
屏幕大小的分类有哪些?
密度的分类有哪些?
屏幕的方向有哪些?
为什么需要根据屏幕不同来定义不同的布局文件?不同大小屏幕的布局文件怎么存放?
MyProject/res/layout/main.xml
layout-land/main.xml
layout-large/main.xml
layout-large-land/main.xml
为什么需要根据屏幕密度提供不同的 bitmap 资源?怎么做?
MyProject/res/drawable-xhdpi/awesomeimage.png
drawable-hdpi/awesomeimage.png
drawable-mdpi/awesomeimage.png
不同密度的比例是什么?
根据按钮上显示的内容,按钮可以分为几种?分别用什么属性设置?
按钮的 onClick 属性有什么用?怎么用?它的值所指定的响应方法在哪里定义,有什么特殊要求?方法的参数是什么?
还可以怎么设置按钮的监听方法?代码模板是什么?望大家理解该模板
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 资源如何定义无边框按钮?
<Button style="?android:attr/borderlessButtonStyle"/>
如何定制背景?
default
(无)、pressed
(按下) 和 focused
(聚焦) 这三种状态<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/button_pressed"
android:state_pressed="true" />
<item android:drawable="@drawable/button_focused"
android:state_focused="true" />
<item android:drawable="@drawable/button_default" />
</selector>
//- 的顺序非常重要,只有当 pressed 和 focused 均为 false 时,default 才会应用
什么是 ninepatch 图片,该图片中的四条线分别表示什么意义?它的名字怎么命名?相应的 xml 什么用?里面的子标签什么含义?
.9
)图片,可拉伸的位图图像,有 padding 的图像文件怎么设置按钮的“.9”背景图片?
<Button android:background="@drawable/my_button_background"/>
如何使用 android sdk 中的制作.9文件的工具?如果不设置 padding 线,那内容到边之间的 padding 怎么确定,实验一下?
如何在studio中显示代码的行号?学会看错误提示信息,这很重要
输入文本框的标签是什么?
如何指定输入文本框的类型?如何组合输入模式?
android:inputType
指定输入类型,因而确定键盘类型<EditText android:inputType="textPostalAddress|textCapWords|textNoSuggestions" />
标签属性的值是不是可以通过 java 代码进行修改?
landscape 和 portrait 什么区别?如何在虚拟机上切换?
如何设置虚拟机的物理键盘或虚拟键盘?
什么是输入键盘的 action?默认值是什么?如何设置该 action?如何监听该动作(监听模板代码)?
android:focusable
的域 (不一定是文本框),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中定义字符数组资源?
android:imeOptions="flagNoExtractUi"
//获取布局文件中 AutoCompleteTextView 的引用
AutoCompleteTextView textView = (AutoCompleteTextView) findViewById(R.id.autocomplete_country);
// 从资源中获取字符数组
String[] countries = getResources().getStringArray(R.array.countries_array);
// 创建 adapter,并把它设置到 AutoCompleteTextView 中
ArrayAdapter<String> adapter =
new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, countries);
textView.setAdapter(adapter);
<resources>
<string-array name="countries_array">
<item>Algeria</item>
<item>American Samoa</item>
<item>Angola</item>
...
</string-array>
</resources>
如何在 java 代码中获取字符数组资源从而进行操作?理解代码模板
String[] countries = getResources().getStringArray(R.array.countries_array);
什么是复选框?在布局文件中是哪个标签?
复选框后的文字怎么加上?
如何设置复选框的单击事件处理方法?若干复选框可以用同一个事件处理方法进行处理吗?如何在方法中区分选择的是哪个复选框?
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同时可以有几个布局?
setContentView(R.layout.布局文件名);
什么是无线按钮?在布局文件中是哪个标签?为什么要把这种标签放在RadioGroup中?RadioGroup是哪个布局的子类,这意味着什么?如何设置无线按钮的默认选择?
如何设置无线按钮的单击事件处理方法?
什么是切换按钮?是哪些标签?如何在java程序中改变按钮的状态?如何响应用户对按钮的操作?(代码模板)
//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,在运行时会发生什么情况?
注释的快捷键是什么?
Toast是什么?它也是放在布局文件中吗?makeText方法的三个参数什么含义?
什么是context?
如何定义toast的显示?
toast.setGravity(Gravity.TOP|Gravity.LEFT, 0, 0);
如何创建定制的Toast视图?inflater功能是什么?如何设置这种方式的toast中的文字?如何将定制布局应用到toast实例?通过setView方法设置视图的Toast,怎么构造toast实例?
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/toast_layout_root"
android:orientation="horizontal"
android:padding="8dp"
android:background="#DAAA">
<ImageView android:src="@drawable/droid"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="8dp"/>
<TextView android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#FFF"/>
</LinearLayout>
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这个属性是什么含义?
例 因为 LinearLayout 是布局的根 view,
它的大小又设置为 "match_parent",所以它将充满整个屏幕
RadioGroup是什么?其什么作用?它的父类是哪个?默认方向是什么?怎么改掉?
android:orientation
更改RadioButton是什么?为什么要加入RadioGroup中?如何默认选中?它的 id 有什么特别的用处?
怎么将MainActivity的布局改掉?
setContentView(R.layout.activity_main2);
如何加入输入的提示信息?
如何将EditText指定为输入密码类型的数据?
End.