Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 626|回复: 0

Android 基础 UI 编程之六-  Android学习

[复制链接]

该用户从未签到

发表于 2011-10-24 14:50:18 | 显示全部楼层 |阅读模式
专业相框设计
ImageView 的堆叠应用


①新建工程
②准备三张 png 图片

③修改 main.xml 布局,添加 UI 元素
<?xml version="1.0" encoding="utf-8"?>

<AbsoluteLayout

android:id="@+id/widget34"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

xmlns:android="http://schemas.android.com/apk/res/android"

><!--创建第一个ImageView (第二层图片)-->

<ImageView

android:id="@+id/myImageView1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_x="0px"

android:layout_y="36px"

/>

<!--创建第二个ImageView (第一层图片)-->

<ImageView

android:id="@+id/myImageView2"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_x="0px"

android:layout_y="36px"

/>

<!--创建第一个Button -->

<Button



android:id="@+id/myButton1"

android:layout_width="105px"

android:layout_height="66px"

android:text="pic1"

android:layout_x="9px"

android:layout_y="356px"

/>

<!--创建第二个Button -->

<Button

android:id="@+id/myButton2"

android:layout_width="105px"

android:layout_height="66px"

android:text="pic2"

android:layout_x="179px"

android:layout_y="356px"

/>

</AbsoluteLayout>
复制代码
④修改 mainActivity.java
package zyf.Ex_Ctrl_7;

import android.app.Activity;

import android.os.Bundle;

import android.view.View;

import android.widget.Button;

import android.widget.ImageView;

public class Ex_Ctrl_7 extends Activity {

/** Called when the activity is first created. */

/* 声明Button、ImageView 对象 */

private ImageView mImageView01;

private ImageView mImageView02;

private Button mButton01;

private Button mButton02;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

/* 取得Button、ImageView 对象 */

mImageView01 = (ImageView) findViewById(R.id.myImageView1);

mImageView02 = (ImageView) findViewById(R.id.myImageView2);

mButton01 = (Button) findViewById(R.id.myButton1);

mButton02 = (Button) findViewById(R.id.myButton2);

/* 设置ImageView 背景图 */

mImageView01.setImageDrawable(getResources().getDrawable(

R.drawable.right));



mImageView02.setImageDrawable(getResources().getDrawable(

R.drawable.photo));

/* 用OnClickListener 事件来启动 */

mButton01.setOnClickListener(new Button.OnClickListener() {

@Override

public void onClick(View v) {

/* 当启动后, ImageView 立刻换背景图 */

mImageView01.setImageDrawable(getResources().getDrawable(

R.drawable.right));

}

});

mButton02.setOnClickListener(new Button.OnClickListener() {

@Override

public void onClick(View v) {

mImageView01.setImageDrawable(getResources().getDrawable(

R.drawable.left));

}

});

}

}
复制代码

结果:

ImageButton 的堆叠应用


①新建项目
②准备三张 png 图片

③修改 main.xml 布局,添加 UI 元素
<?xml version="1.0" encoding="utf-8"?>

<AbsoluteLayout xmlns:android="http://schemas.android.com/apk/res/android"

androidrientation="vertical"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

>

<ImageButton

android:id="@+id/myImageButton_Back"

android:state_focused="true"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:layout_x="0px"

android:layout_y="36px"



/>

<ImageButton

android:id="@+id/myImageButton_Photo"

android:state_focused="true"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:layout_x="0px"

android:layout_y="36px"

/>

</AbsoluteLayout>
复制代码
④修改 mainActivity.java
package zyf.Ex_Ctrl_7_B;

import android.app.Activity;

import android.os.Bundle;

import android.view.View;

import android.widget.ImageButton;



public class Ex_Ctrl_7_B extends Activity {

/** Called when the activity is first created. */

/*声明 ImageButton*/

private ImageButton back_Imagebutton,photo_Imagebutton;

private boolean Tag=true;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

/*从XML中获取控件对象*/

back_Imagebutton=(ImageButton)findViewById(R.id.myImageButton_Back);

photo_Imagebutton=(ImageButton)findViewById(R.id.myImageButton_Photo);





//设置默认的背景图片

back_Imagebutton.setBackgroundResource(R.drawable.left);

photo_Imagebutton.setBackgroundResource(R.drawable.photo);

//给ImageButton设置事件监听器

photo_Imagebutton.setOnClickListener(new ImageButton.OnClickListener(){

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

Tag=!Tag;//更改背景图片

if(Tag){

back_Imagebutton.setBackgroundResource(R.drawable.right);

}else{

back_Imagebutton.setBackgroundResource(R.drawable.left);

}

}

});

}

}
复制代码

结果:

自定义下拉菜单
Spinner 与setDropDownViewResource


①新建项目,在 res 目录下新建一个 anim 文件夹,存放动画效果用,在其中新建一个 my_anim.xml 文件
<?xml version="1.0" encoding="utf-8"?>

<set xmlns:android="http://schemas.android.com/apk/res/android">

<translate

android:fromXDelta="0"

android:toXDelta="-100%p"

android:duration="300">

</translate><!--位置转换动画效果 -->

<alpha

android:fromAlpha="3.0"

android:toAlpha="6.0"

android:duration="300">

</alpha><!--透明度转换动画效果 -->

</set>
复制代码
②在 res 目录下的 layout 文件夹中新建一个 myspinner_dropdown.xml 文件,用来存放下拉菜单弹出内容的布局



<?xml version="1.0" encoding="utf-8"?>

<TextView

xmlns:android="http://schemas.android.com/apk/res/android"

android:id="@+id/text1"

android:layout_width="wrap_content"

android:layout_height="24sp"

android:singleLine="true"

style="?android:attr/spinnerDropDownItemStyle"

/>
复制代码
③修改 main.xml,添加 UI 元素
<?xml version="1.0" encoding="utf-8"?>

<LinearLayout

android:id="@+id/widget28"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:orientation="vertical"

xmlns:android="http://schemas.android.com/apk/res/android">

<TextView

android:id="@+id/TextView_Show"

android:layout_width="fill_parent"



android:layout_height="wrap_content"

android:text="你选择的是"

android:textSize="25sp">

</TextView>

<Spinner

android:id="@+id/spinner_City"

android:layout_width="fill_parent"

android:layout_height="wrap_content">

</Spinner><!-- 定义一个下拉菜单 -->

</LinearLayout>
复制代码
④定义一个下拉菜单
private Spinner mySpinner;

/* 以 findViewById() 取得对象 */

mySpinner = (Spinner) findViewById(R.id.spinner_City);
复制代码
⑤定义一个字符串数组和一个 ArrayAdepter
private static final String[] countriesStr =

{ " 北京市 ", " 上海市 ", " 天津市 ", " 重庆市 " };

private ArrayAdapter<String> adapter;





adapter=new ArrayAdapter<String>(this,

android.R.layout.simple_spinner_item, countriesStr);
复制代码
6、给下拉菜单内容设置样式
/* myspinner_dropdown 为自定义下拉菜单样式定义在 res/layout 目录下 */

adapter.setDropDownViewResource(R.layout.myspinner_dropdown);
复制代码
给下拉菜单设置内容适配器
/* 将 ArrayAdapter 添加 Spinner 对象中 */

mySpinner.setAdapter(adapter);
复制代码
给下拉菜单添加动画
/* 取得Animation 定义在res/anim 目录下*/

myAnimation = AnimationUtils.loadAnimation(this, R.anim.my_anim);

/* 将mySpinner 运行Animation */

mySpinner.startAnimation(myAnimation);
复制代码
mainActivity.java 完整代码
package zyf.Ex_Ctrl_8;

import android.app.Activity;

import android.os.Bundle;

import

import

import

import

import

import

import

import

android.view.MotionEvent;

android.view.View;

android.view.animation.Animation;

android.view.animation.AnimationUtils;

android.widget.AdapterView;

android.widget.ArrayAdapter;

android.widget.Spinner;

android.widget.TextView;

public class Ex_Ctrl_8 extends Activity {

/** Called when the activity is first created. */

private static final String[] countriesStr =

{ " 北京市 ", " 上海市 ", " 天津市 ", " 重庆市 " };

private TextView myTextView;

private Spinner mySpinner;

private ArrayAdapter<String> adapter;

Animation myAnimation;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

/* 载入 main.xml Layout */

setContentView(R.layout.main);

/* 以 findViewById() 取得对象 */

myTextView = (TextView) findViewById(R.id.TextView_Show);

mySpinner = (Spinner) findViewById(R.id.spinner_City);

/* 取得Animation 定义在res/anim 目录下*/

myAnimation = AnimationUtils.loadAnimation(this, R.anim.my_anim);



adapter=new ArrayAdapter<String>(this,

android.R.layout.simple_spinner_item, countriesStr);

/* myspinner_dropdown 为自定义下拉菜单样式定义在 res/layout 目录下 */

adapter.setDropDownViewResource(R.layout.myspinner_dropdown);

/* 将 ArrayAdapter 添加 Spinner 对象中 */

mySpinner.setAdapter(adapter);

/*下拉菜单弹出的内容选项被选中事件处理*/

mySpinner.setOnItemSelectedListener(new

Spinner.OnItemSelectedListener(){

public void onItemSelected(AdapterView<?> arg0, View arg1,

int arg2, long arg3) {

// TODO Auto-generated method stub

/* 将所选mySpinner 的值带入myTextView 中*/

myTextView.setText("您选择的是:"+ countriesStr[arg2]);

/* 将mySpinner 显示*/



arg0.setVisibility(View.VISIBLE);

}

public void onNothingSelected(AdapterView<?> arg0) {

// TODO Auto-generated method stub

myTextView.setText("NONE");

}

});

/*下拉菜单弹出的内容选项 触屏事件处理*/

mySpinner.setOnTouchListener(new Spinner.OnTouchListener(){

public boolean onTouch(View v, MotionEvent event) {

// TODO Auto-generated method stub

/* 将mySpinner 运行Animation */

v.startAnimation(myAnimation);

/* 将mySpinner 隐藏*/

v.setVisibility(View.INVISIBLE);

return false;

}

});

/*下拉菜单弹出的内容选项 焦点改变事件处理*/

mySpinner.setOnFocusChangeListener(new Spinner.OnFocusChangeListener(){

public void onFocusChange(View v, boolean hasFocus) {

// TODO Auto-generated method stub

}

});

}

}
复制代码

结果:

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

GMT+8, 2025-1-11 11:43 , Processed in 0.380523 second(s), 46 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表