`

Android 基础UI编程1

阅读更多
Android 基础UI编程
更改与显示文字标签
TextView 标签的使用
① 导入TextView 包
import android.widget.TextView;

② 在mainActivity.java 中声明一个TextView
private TextView mTextView01;

③ 在main.xml 中定义一个TextView
<TextView android:text="TextView01"
android:id="@+id/TextView01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_x="61px"
android:layout_y="69px">
</TextView>

④ 利用findViewById()方法获取main.xml 中的TextView
mTextView01 = (TextView) findViewById(R.id.TextView01);

⑤ 设置TextView 标签内容
String str_2 = "欢迎来到Android 的TextView 世界...";
mTextView01.setText(str_2);

⑥ 设置文本超级链接
<TextView
android:id="@+id/TextView02"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:autoLink="all"
android:text="请访问Android 开发者:
http://developer.android.com/index.html" >
</TextView>

android.graphics.Color实践----Color颜色变幻
android.graphics.Color 包含颜色值
引用

Color.BLACK        黑色
Color.BLUE         蓝色
Color.CYAN         青绿色
Color.DKGRAY       灰黑色
Color.GRAY         灰色
Color.GREEN        绿色
Color.LTGRAY       浅灰色
Color.MAGENTA      红紫色
Color.RED          红色
Color.TRANSPARENT  透明
Color.WHITE        白色
Color.YELLOW       黄色


编程实现颜色变幻
① 新建工程
② 修改mainActivity.java 文件,添加12 个TextView 对象变量,一个LinearLayout 对象变量、一个WC
整数变量、一个LinearLayout.LayoutParams 变量。
package zyf.ManyColorME;
/*导入要使用的包*/
import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.widget.LinearLayout;
import android.widget.TextView;
public class ManyColorME extends Activity {
/** Called when the activity is first created. */
/* 定义使用的对象*/
private LinearLayout myLayout;
private LinearLayout.LayoutParams layoutP;
private int WC = LinearLayout.LayoutParams.WRAP_CONTENT;
private TextView black_TV, blue_TV, cyan_TV, dkgray_TV,
gray_TV, green_TV,ltgray_TV, magenta_TV, red_TV,
transparent_TV, white_TV, yellow_TV;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
/* 实例化一个LinearLayout布局对象*/
myLayout = new LinearLayout(this);
/* 设置LinearLayout的布局为垂直布局*/
myLayout.setOrientation(LinearLayout.VERTICAL);
/* 设置LinearLayout布局背景图片*/
myLayout.setBackgroundResource(R.drawable.back);
/* 加载主屏布局*/
setContentView(myLayout);
/* 实例化一个LinearLayout布局参数,用来添加View */
layoutP = new LinearLayout.LayoutParams(WC, WC);
/* 构造实例化TextView对象*/
constructTextView();
/* 把TextView添加到LinearLayout布局中*/
addTextView();
/* 设置TextView文本颜色*/
setTextViewColor();
/* 设置TextView文本内容*/
setTextViewText();
} /* 设置TextView文本内容*/
public void setTextViewText() {
black_TV.setText("黑色");
blue_TV.setText("蓝色");
cyan_TV.setText("青绿色");
dkgray_TV.setText("灰黑色");
gray_TV.setText("灰色");
green_TV.setText("绿色");
ltgray_TV.setText("浅灰色");
magenta_TV.setText("红紫色");
red_TV.setText("红色");
transparent_TV.setText("透明");
white_TV.setText("白色");
yellow_TV.setText("黄色");
} /* 设置TextView文本颜色 */
public void setTextViewColor() {
black_TV.setTextColor(Color.BLACK);
blue_TV.setTextColor(Color.BLUE);
dkgray_TV.setTextColor(Color.DKGRAY);
gray_TV.setTextColor(Color.GRAY);
green_TV.setTextColor(Color.GREEN);
ltgray_TV.setTextColor(Color.LTGRAY);
magenta_TV.setTextColor(Color.MAGENTA);
red_TV.setTextColor(Color.RED);
transparent_TV.setTextColor(Color.TRANSPARENT);
white_TV.setTextColor(Color.WHITE);
yellow_TV.setTextColor(Color.YELLOW);
} /* 构造实例化TextView对象*/
public void constructTextView() {
black_TV = new TextView(this);
blue_TV = new TextView(this);
cyan_TV = new TextView(this);
dkgray_TV = new TextView(this);
gray_TV = new TextView(this);
green_TV = new TextView(this);
ltgray_TV = new TextView(this);
magenta_TV = new TextView(this);
red_TV = new TextView(this);
transparent_TV = new TextView(this);
white_TV = new TextView(this);
yellow_TV = new TextView(this);
} /* 把TextView添加到LinearLayout布局中*/
public void addTextView() {
myLayout.addView(black_TV, layoutP);
myLayout.addView(blue_TV, layoutP);
myLayout.addView(cyan_TV, layoutP);
myLayout.addView(dkgray_TV, layoutP);
myLayout.addView(gray_TV, layoutP);
myLayout.addView(green_TV, layoutP);
myLayout.addView(ltgray_TV, layoutP);
myLayout.addView(magenta_TV, layoutP);
myLayout.addView(red_TV, layoutP);
myLayout.addView(transparent_TV, layoutP);
myLayout.addView(white_TV, layoutP);
myLayout.addView(yellow_TV, layoutP);
}
}

android.graphics.Typeface实践
字体风格Typeface 种类
int Style 类型
Typeface 类型
Typeface.create(Typeface family,int style)
创建一个混合型新的字体:有4*5 中搭配
Typeface.setTypeface (Typeface tf, int style)
设置一个混合型字体:有4*5 中搭配
Typeface.setTypeface(Typeface tf)
设置一个只有Typeface 风格的字体:有五种形式
BOLD           粗体
BOLD_ITALIC    粗斜体 
ITALIC         斜体
NORMAL         普通字体
DEFAULT        默认字体 
DEFAULT_BOLD   默认粗体
MONOSPACE      单间隔字体
SANS_SERIF     无衬线字体
SERIF          衬线字体
编程实现以上静态域字体
① 创建新工程
② 修改mianActivity.java,实现多种字体TextView 显示
package zyf.TypefaceStudy;
/*导入要使用的包*/
import android.app.Activity;
import android.graphics.Color;
import android.graphics.Typeface;
import android.os.Bundle;
import android.view.ViewGroup;
import android.widget.LinearLayout;
import android.widget.TextView;
public class TypefaceStudy extends Activity {
/** Called when the activity is first created. */
/*
* android.graphics.Typeface java.lang.Object
Typeface类指定一个字体的字体和固有风格.
* 该类用于绘制,与可选绘制设置一起使用,
如textSize, textSkewX, textScaleX 当绘制(测量)时来指定如何显示文本.
*/
/* 定义实例化一个布局大小,用来添加TextView */
final int WRAP_CONTENT = ViewGroup.LayoutParams.WRAP_CONTENT;
/* 定义TextView对象*/
private TextView bold_TV, bold_italic_TV, default_TV,
default_bold_TV,italic_TV,monospace_TV,
normal_TV,sans_serif_TV,serif_TV;
/* 定义LinearLayout布局对象*/
private LinearLayout linearLayout;
/* 定义LinearLayout布局参数对象*/
private LinearLayout.LayoutParams linearLayouttParams;
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
/* 定义实例化一个LinearLayout对象*/
linearLayout = new LinearLayout(this);
/* 设置LinearLayout布局为垂直布局*/
linearLayout.setOrientation(LinearLayout.VERTICAL);
/*设置布局背景图*/
linearLayout.setBackgroundResource(R.drawable.back);
/* 加载LinearLayout为主屏布局,显示*/
setContentView(linearLayout);
/* 定义实例化一个LinearLayout布局参数*/
linearLayouttParams =
new LinearLayout.LayoutParams(WRAP_CONTENT,WRAP_CONTENT);
constructTextView();
setTextSizeOf();
setTextViewText() ;
setStyleOfFont();
setFontColor();
toAddTextViewToLayout();
} public void constructTextView() {
/* 实例化TextView对象*/
bold_TV = new TextView(this);
bold_italic_TV = new TextView(this);
default_TV = new TextView(this);
default_bold_TV = new TextView(this);
italic_TV = new TextView(this);
monospace_TV=new TextView(this);
normal_TV=new TextView(this);
sans_serif_TV=new TextView(this);
serif_TV=new TextView(this);
} public void setTextSizeOf() {
// 设置绘制的文本大小,该值必须大于0
bold_TV.setTextSize(24.0f);
bold_italic_TV.setTextSize(24.0f);
default_TV.setTextSize(24.0f);
default_bold_TV.setTextSize(24.0f);
italic_TV.setTextSize(24.0f);
monospace_TV.setTextSize(24.0f);
normal_TV.setTextSize(24.0f);
sans_serif_TV.setTextSize(24.0f);
serif_TV.setTextSize(24.0f);
} public void setTextViewText() {
/* 设置文本*/
bold_TV.setText("BOLD");
bold_italic_TV.setText("BOLD_ITALIC");
default_TV.setText("DEFAULT");
default_bold_TV.setText("DEFAULT_BOLD");
italic_TV.setText("ITALIC");
monospace_TV.setText("MONOSPACE");
normal_TV.setText("NORMAL");
sans_serif_TV.setText("SANS_SERIF");
serif_TV.setText("SERIF");
} public void setStyleOfFont() {
/* 设置字体风格*/
bold_TV.setTypeface(null, Typeface.BOLD);
bold_italic_TV.setTypeface(null, Typeface.BOLD_ITALIC);
default_TV.setTypeface(Typeface.DEFAULT);
default_bold_TV.setTypeface(Typeface.DEFAULT_BOLD);
italic_TV.setTypeface(null, Typeface.ITALIC);
monospace_TV.setTypeface(Typeface.MONOSPACE);
normal_TV.setTypeface(null, Typeface.NORMAL);
sans_serif_TV.setTypeface(Typeface.SANS_SERIF);
serif_TV.setTypeface(Typeface.SERIF);
} public void setFontColor() {
/* 设置文本颜色*/
bold_TV.setTextColor(Color.BLACK);
bold_italic_TV.setTextColor(Color.CYAN);
default_TV.setTextColor(Color.GREEN);
default_bold_TV.setTextColor(Color.MAGENTA);
italic_TV.setTextColor(Color.RED);
monospace_TV.setTextColor(Color.WHITE);
normal_TV.setTextColor(Color.YELLOW);
sans_serif_TV.setTextColor(Color.GRAY);
serif_TV.setTextColor(Color.LTGRAY);
} public void toAddTextViewToLayout() {
/* 把TextView加入LinearLayout布局中*/
linearLayout.addView(bold_TV, linearLayouttParams);
linearLayout.addView(bold_italic_TV, linearLayouttParams);
linearLayout.addView(default_TV, linearLayouttParams);
linearLayout.addView(default_bold_TV, linearLayouttParams);
linearLayout.addView(italic_TV, linearLayouttParams);
linearLayout.addView(monospace_TV, linearLayouttParams);
linearLayout.addView(normal_TV, linearLayouttParams);
linearLayout.addView(sans_serif_TV, linearLayouttParams);
linearLayout.addView(serif_TV, linearLayouttParams);
}
}

更改手机窗口画面底色
drawable 定义颜色常数的方法
① 编写main 布局
<?xml version="1.0" encoding="utf-8"?>
<AbsoluteLayout
android:id="@+id/widget0"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
> <
TextView
android:id="@+id/name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="账号"
android:layout_x="61px"
android:layout_y="69px"
> </TextView>
<TextView
android:id="@+id/password"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="密码"
android:layout_x="61px"
android:layout_y="158px"
> </TextView>
<EditText
android:id="@+id/name_in"
android:layout_width="120dip"
android:layout_height="wrap_content"
android:textSize="18sp"
android:layout_x="114px"
android:layout_y="57px"
> </EditText>
<EditText
android:id="@+id/pwd_in"
android:layout_width="120dip"
android:layout_height="wrap_content"
android:textSize="18sp"
android:password="true"
android:layout_x="112px"
android:layout_y="142px"
> </EditText>
</AbsoluteLayout>

② 在values 文件夹中定义一个drawable.xml 文件用来存放颜色值
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="white">#FFFFFF</color>
<color name="darkgray">#938192</color>
<color name="lightgreen">#7cd12e</color>
</resources>

③ 修改main.xml 中的屏幕背景颜色和TextView 的字体颜色
<AbsoluteLayout
android:id="@+id/widget0"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@color/white"
xmlns:android="http://schemas.android.com/apk/res/android"
> <
TextView
android:id="@+id/name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="账号"
android:textColor="@color/darkgray"
android:layout_x="61px"
android:layout_y="69px"
> </TextView>
<TextView
android:id="@+id/password"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="密码"
android:textColor="@color/darkgray"
android:layout_x="61px"
android:layout_y="158px"
>

④ 在mainActivity.java 代码中修改TextView 背景颜色
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
TextView text=(TextView)findViewById(R.id.name);
//由ID获得资源
Resources myColor=getBaseContext().getResources();
//getBaseContext()获得基础Context
//getResources()获得资源
Drawable color_M=myColor.getDrawable(R.color.lightgreen );
//由资源myColor来获得Drawable R.color.lightgreen是颜色值的ID引用
text.setBackgroundDrawable(color_M);
//设置背景
}

代码中更改TextView 文字颜色
① 创建工程
② 编写布局main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
/>
<TextView
android:text="TextView01"
android:id="@+id/TextView01"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
</TextView>
<TextView
android:text="这里使用Graphics颜色静态常量"
android:id="@+id/TextView02"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
</TextView>
</LinearLayout>

③ 新加drawable.xml,其中添加一个white 颜色值
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="white">#ffffffff</color>
</resources>

④ 在代码中由ID 获取TextView
TextView text_A=(TextView)findViewById(R.id.TextView01);
TextView text_B=(TextView)findViewById(R.id.TextView02);

⑤ 获取Resources 对象
Resources myColor_R=getBaseContext().getResources();
//getBaseContext()获得基础Context
//getResources()从Context 获取资源实例对象

⑥ 获取Drawable 对象
Drawable myColor_D=myColor_R.getDrawable(R.color.white);

⑦ 设置文本背景颜色
text_A.setBackgroundDrawable(myColor_D);

⑧ 利用android.graphics.Color 的颜色静态变量来改变文本颜色
text_A.setTextColor(android.graphics.Color.GREEN);

⑨ 利用Color 的静态常量来设置文本颜色
text_B.setTextColor(Color.RED);


置换TextView 文字
CharSequence 数据类型与Resource ID 应用
① 创建新工程
② 修改main.xml 布局,新增一个TextView
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:text="@string/str_2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/myTextView2"
/>
</LinearLayout>

③ 在string.xml 中添加字符串str_2:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">Hello World, Ex4_UI!</string>
<string name="app_name">Ex4_UI</string>
<string name="str_2">我是Resource里的&quot;字符串&quot;</string>
</resources>

④ 在mainActivity.java 中findViewByID()获取TextView
TextView myText=(TextView)findViewById(R.id.myTextView2);

⑤ getString(R.string.str_2)得到原字符串
CharSequence string2=getString(R.string.str_2);

⑥ 定义新字符串str_3
String str_3="我是程序里调用Resource 的";

⑦ 两个字符串连接并重新设置TextView 内容
myText.setText(str_3+string2);


取得手机屏幕大小
DisplayMetrics 类取得画面宽高
① 创建新工程
② 修改main.xml 布局,添加一个TextView
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:text="TextView01"
android:id="@+id/TextView01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"></TextView>
</LinearLayout>

③ 在代码中定义一个DisplayMetrics 类对象
DisplayMetrics displaysMetrics=new DisplayMetrics();
//DisplayMetrics 一个描述普通显示信息的结构,例如显示大小、密度、字体尺寸

④ 获取手机窗口的Display 来初始化DisplayMetrics 对象
getWindowManager().getDefaultDisplay().getMetrics(displaysMetrics);
//getManager()获取显示定制窗口的管理器。
//获取默认显示Display对象
//通过Display 对象的数据来初始化一个DisplayMetrics 对象

⑤ 得到屏幕宽高
String showSize="手机屏幕分辨率: \n"+
displaysMetrics.widthPixels+"*"+displaysMetrics.heightPixels;

⑥ 在mainActivity.java 中findViewByID()获取TextView
TextView myShow=(TextView)findViewById(R.id.TextView01);

⑦ 显示屏幕分辨率信息
myShow.setText(showSize);
分享到:
评论

相关推荐

    Android 基础UI编程4

    本节我们将深入探讨“Android基础UI编程4”,主要关注Android中的布局管理、控件使用以及自定义UI组件等内容。 一、Android布局管理 Android提供多种布局管理器,如LinearLayout、RelativeLayout、ConstraintLayout...

    新编Android 基础UI编程 PDF文件

    本教程《新编Android 基础UI编程》聚焦于为初学者提供Android UI编程的基础知识,帮助开发者构建出美观且易用的应用界面。下面将详细阐述Android UI编程的关键概念和实践技巧。 1. **XML布局文件**:Android UI主要...

    新编Android基础UI编程[PDF].rar

    《新编Android基础UI编程》是一本专注于Android用户界面(UI)开发的教程,适合初学者及有一定经验的开发者深入理解Android UI系统。该书涵盖了从基本的布局管理器到高级自定义视图的设计,旨在帮助读者掌握创建美观...

    Android基础UI编程.pdf

    以下是一些关于Android基础UI编程的知识点: 1. **标题和状态栏的隐藏**: - Android中的Activity可以通过调用`requestWindowFeature()`方法来控制标题栏和状态栏的显示与隐藏。 - 要隐藏标题栏,可以在`...

    老罗Android开发视频教程-Android常用UI控件编程【32集】

    教程名称: 老罗Android开发视频教程-Android常用UI控件编程【32集】【】Android常用UI控件编程第七集【】Android常用UI控件编程第二十三集【】Android常用UI控件编程第二十九集【】Android常用UI控件编程第二十二...

    Android_基础UI编程[1].pdf

    以上内容只是Android UI编程的基础,实际开发中还会涉及到更复杂的布局管理器(如 `RelativeLayout` 和 `GridLayout`),自定义视图,动画,触摸事件处理,以及各种控件的使用等。理解并熟练掌握这些概念对于开发出...

    Android开发笔记——UI基础编程

    这份"Android开发笔记——UI基础编程"的资料集包含了两部分:新版Android开发教程+笔记七--基础UI编程1.pdf和新版Android开发教程+笔记七--基础UI编程2.pdf,将深入讲解Android应用程序中用户界面的设计与实现。...

    新版Android开发教程+笔记七--基础UI编程1

    标题和描述提及了“新版Android开发教程+笔记七--基础UI编程1”,以及“安卓开发必备”,因此本篇内容将主要围绕Android基础UI编程展开。 Android UI编程是构建Android应用界面的核心部分。它涉及到使用各种布局和...

    Android文件存取和数据库编程UI编程

    在Android应用开发中,文件存取、数据库编程和UI编程是至关重要的组成部分。这份资料集包含两个PDF文档,分别详细讲解了这些主题。下面将分别介绍这三个关键领域的主要知识点。 一、Android文件存取 在Android系统...

    android:基础UI编程3(中文)

    根据给定的文件信息,以下是对“Android:基础UI编程3(中文)”这一主题的知识点详细解析: ### Android UI 编程基础 #### 一、理解Android UI编程 Android UI编程是开发移动应用时不可或缺的一部分,它涉及到创建...

    新版Android开发教程-基础UI编程

    新版Android开发教程-基础UI编程

    android 应用 UI 编程大全

    在Android应用开发中,UI编程是一个核心部分,它涉及到用户界面设计、布局控制、动画效果以及资源使用等多个方面。接下来,我们将会从提供的文件信息中提取相关的知识点进行详细说明。 首先,标题《android 应用 UI...

    新版Android开发教程 笔记10--基础UI编程4

    本教程将深入探讨Android基础UI编程的第四部分,帮助开发者掌握构建吸引人的、功能丰富的用户界面的关键技术。 首先,Android UI框架的核心是布局(Layouts),它是控制应用程序视图元素如何排列和对齐的基础。在...

    Android开发教程-基础UI编程

    本教程将深入探讨Android的基础UI编程,包括各种常用的UI控件及其用法。 首先,我们从最基本的控件开始。TextView是Android中最常见的控件,用于显示文本。你可以设置文字内容、字体样式、颜色等属性。比如,通过`...

    老罗Android开发视频教程 (android常用UI编程) 26-33集源码

    在本资源中,"老罗Android开发视频教程 (android常用UI编程) 26-33集源码.zip"是一个包含Android应用开发教学内容的压缩文件。老罗,可能指的是知名的技术讲师罗永浩,以其通俗易懂的讲解风格而闻名。这个教程聚焦于...

    老罗Android教程:六.常用UI编程源代码

    常用UI编程源代码】是一个专为Android开发者设计的资源集合,旨在帮助初学者和有经验的开发者理解并掌握Android平台上的常见用户界面(UI)编程技术。本教程包含了20多个不同的源代码示例,这些示例涵盖了Android UI...

Global site tag (gtag.js) - Google Analytics