`
lucene321
  • 浏览: 179516 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

android开发中的UI控制(五)

    博客分类:
  • java
阅读更多
    [size=large;]android开发中的ui控制(五)[/size]
 
转载自:http://www.android777.com/index.php/tutorial/android-view/androids-ui-control-v.html
 
 
下面看几个比较有意思的ui控件。
spinner:
spinner是adaperview的子类,跟listview、gridview一样,所以得设置adapter提供数据源。
 
<?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"    ><spinner      android:id="@+id/spinner1"    android:layout_width="fill_parent"     android:layout_height="wrap_content"     android:prompt="@string/prompt_province"    /></linearlayout>
 
效果图如下:
<p style="text-align: center;"><br><img src="http://dl.iteye.com/upload/attachment/531777/8e461bc2-83ba-319a-ab15-2a482d086451.png" alt=""> 
[size=large;]gallery:[/size]
 
gallery是一个横向的可滚动的list容器,它的焦点一直是在区域的中间部分。它一般用来显示一系列照片,特别是在触摸屏中经常使用它。可以通过在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"    >  <gallery      android:id="@+id/gallery01"    android:layout_width="fill_parent"     android:layout_height="fill_parent"     /></linearlayout>
 
然后跟其他的listview、gridview、spinner一样,我们将一个adapter与它进行绑定,用来显示几张图片。这边还有一个额外的操作就是要定义一个样式,作为它里面item的样式。在这边我们通过在attrs.xml里定义一个样式来实现:
res\values\attrs.xml:
 
<?xml version="1.0" encoding="utf-8"?><resources>    <declare-styleable name="mygallery">        <attr name="android:galleryitembackground" />    </declare-styleable></resources>
 
然后将需要显示的图片(附件中的图片js1.jpg,js2.jpg,js3.jpg,js4.jpg,js5.jpg)放到res\drawable或res\drawable-*中。
 
在显示的activity里,定义一个内部类mybaseadapter用来将数据和gallery进行绑定。
mybaseadapter.java
package com.zhouzijing.android;import java.util.list;import android.content.context;import android.content.res.typedarray;import android.util.log;import android.view.layoutinflater;import android.view.view;import android.view.viewgroup;import android.widget.baseadapter;import android.widget.imageview;import android.widget.textview;public class mybaseadapter extends baseadapter {	private list<person> persons;	context context;	int mgalleryitembackground;		public mybaseadapter(context context,list<person> persons){		this.persons = persons;		this.context = context;				//获取自定义样式        typedarray attr = context.obtainstyledattributes(r.styleable.mygallery);        //获取样式里的资源        mgalleryitembackground = attr.getresourceid(                r.styleable.mygallery_android_galleryitembackground, 0);        attr.recycle();	}	@override	public int getcount() {		return (persons==null)?0:persons.size();	}	@override	public object getitem(int position) {		return persons.get(position);	}	@override	public long getitemid(int position) {		return position;	}			public class viewholder{		textview textviewitem01;		imageview imageview;	}	@override	public view getview(int position, view convertview, viewgroup parent) {		final person person = (person)getitem(position);		viewholder viewholder = null;		if(convertview==null){			log.d("mybaseadapter", "新建convertview,position="+position);			convertview = layoutinflater.from(context).inflate(					r.layout.gallery1_item, null);			viewholder = new viewholder();			viewholder.textviewitem01 = (textview)convertview.findviewbyid(					r.id.text_view_01);			viewholder.imageview = (imageview)convertview.findviewbyid(					r.id.image_view_01);			convertview.settag(viewholder);		}else{			viewholder = (viewholder)convertview.gettag();			log.d("mybaseadapter", "旧的convertview,position="+position);		}				viewholder.textviewitem01.settext(person.title);		viewholder.imageview.setimageresource(person.photo);		viewholder.imageview.setbackgroundresource(mgalleryitembackground);		return convertview;	}}
 
然后在activity的oncreate方法中,找出gallery,然后将之前定义的所有图片资源放到自定义的adapter:mybaseadapter中,跟gallery绑定。
    @override    public void oncreate(bundle savedinstancestate) {        super.oncreate(savedinstancestate);        setcontentview(r.layout.gallery1);                //要显示的图片        final list<person> persons = new arraylist<person>();        persons.add(new person("夜景1",r.drawable.js1));        persons.add(new person("夜景2",r.drawable.js2));        persons.add(new person("夜景3",r.drawable.js3));        persons.add(new person("夜景4",r.drawable.js4));        persons.add(new person("夜景5",r.drawable.js5));                //显示gallery        gallery g = (gallery) findviewbyid(r.id.gallery01);        g.setadapter(new mybaseadapter(this, persons));        g.setonitemclicklistener(new onitemclicklistener(){			@override			public void onitemclick(adapterview<?> parent, view view,					int position, long id) {				toast.maketext(getapplicationcontext(), "点击了"+persons.get(position).title, toast.length_short).show();			}        });    }
 
效果图如下:
 
<p style="text-align: center;"><br><img src="http://dl.iteye.com/upload/attachment/532052/c5dcad79-72dd-3459-af56-7397c5084ae2.png" alt=""> 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
0
6
分享到:
评论

相关推荐

    安卓Android源码——ui开发类库示例源码.zip

    6. **DialogFragment**:对话框在Android应用中广泛应用,DialogFragment是Android官方推荐的方式,它继承自Fragment,可以方便地管理和控制对话框的显示与消失。 7. **动画(Animation)**:Android支持属性动画...

    Android8.1 SystemUI源码

    本文将深入探讨Android 8.1版本的SystemUI源码,介绍其结构、工作原理以及如何利用提供的gradle配置进行开发。 首先,让我们来看看`SystemUI`的构成。SystemUI组件主要由以下几个部分组成: 1. **StatusBar**:...

    android 7.0 SystemUI

    在Android系统架构中,SystemUI位于应用层与系统服务层之间,它提供了通知中心、状态栏、快速设置面板、锁屏界面以及各种系统级别的交互控件。深入理解SystemUI的源代码对于开发者优化系统UI性能、自定义系统行为或...

    Android开发自定义View之仿米家APP双色灯控制UI:做一个智能家居产品的简单智能灯UI !

    Android开发自定义View之仿米家APP双色灯控制UI:做一个智能家居产品的简单智能灯UI https://blog.csdn.net/xh870189248/article/details/80486158

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

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

    Android新手UI集合全

    在Android开发领域,UI设计是至关重要的一环,它直接影响到应用程序的用户体验和视觉吸引力。"Android新手UI集合全"这个资源包,显然为初学者提供了一整套的UI设计元素,帮助他们快速理解和实践Android应用界面的...

    android开发 获取UI十六进制颜色码 工具

    在Android开发过程中,UI设计是至关重要的一个环节,而颜色管理是UI设计中的核心部分。开发者经常需要知道屏幕上的各种UI元素所使用的具体颜色值,以便在代码中精确地重现这些颜色。本教程将详细介绍如何获取UI的...

    androidUI设计器

    Android UI 设计器是Android开发中的一个重要工具,它允许开发者直观地设计应用程序的用户界面,无需手动编写XML布局代码。这个工具极大地提升了开发效率,使得非程序员也能参与到UI设计中来,实现快速预览和调整...

    Android things简单的UI

    总之,Android Things提供了将Android的丰富UI开发经验应用于物联网设备的机会。通过理解如何在有限的硬件资源上构建和管理UI,开发者可以创造出功能强大且直观的物联网解决方案。sample-simpleui项目就是一个很好的...

    android项目整体UI框架

    在Android应用开发中,UI框架的设计是至关重要的,它直接影响到应用的用户体验和代码的可维护性。"android项目整体UI框架"这个主题主要涵盖了三个方面:自定义Android项目的底部任务栏、实用Fragment的切换以及项目...

    android 仿锤子UI布局

    在Android开发中,锤子手机以其独特的UI设计风格赢得了众多用户的喜爱。为了实现类似锤子UI的布局,开发者需要深入理解Android布局系统,并掌握一些特殊的设计技巧。本篇将主要探讨如何在Android中仿制锤子UI的格子...

    android 音乐开发 ui素材

    "android 音乐开发 UI素材"这个主题涉及到的是应用程序用户界面中的图形元素,尤其是针对音乐播放功能的按钮和布局设计。酷狗音乐和网易云音乐是两款在中国非常流行的音乐应用,它们的UI设计被广大用户所接受和喜爱...

    Android UI统一框架

    在Android开发中,UI设计和实现是至关重要的部分。为了提高代码的可维护性和复用性,开发者常常会构建一个统一的UI框架。这个框架旨在规范应用中的界面设计,简化多维度UI管理,减少代码冗余,提升开发效率。本文将...

    android模仿易信UI布局效果源码

    在Android开发中,模仿流行的移动应用UI布局是提升用户体验和设计水平的重要步骤。易信,作为一款在中国广受欢迎的即时通讯应用,其简洁而高效的设计风格深受用户喜爱。本源码项目专注于重现易信的UI布局,帮助...

    [毕设季 android开发]第六讲:Android线程及UI更新

    在Android应用开发中,线程管理和UI更新是至关重要的部分,因为Android系统为每个应用程序分配一个主线程,也称为UI线程。主线程主要负责处理用户界面的交互,包括绘制和更新视图。然而,执行耗时的操作(如网络请求...

    android UI 各种小例子

    在Android开发中,UI设计是至关重要的一环,它关乎到应用程序的用户体验和视觉吸引力。本压缩包中的"android UI 各种小例子"为初学者提供了丰富的实践资源,旨在帮助开发者掌握基本的Android用户界面设计技巧。每个...

    Android开发入门60个小案例+源代码

    在Android开发领域,初学者经常会面临许多挑战,如理解Android应用程序的基本架构、学习XML布局、掌握Java或Kotlin编程语言,以及如何与...在学习过程中,建议结合官方文档和其他教程,以全面、深入地学习Android开发。

    Android所有UI控件

    在Android开发中,UI(用户界面)控件是构建应用程序不可或缺的部分。它们为用户提供与应用交互的方式,使得信息展示和操作更加直观。Android系统提供了多种控件,涵盖各种功能,从简单的按钮到复杂的布局。本篇文章...

Global site tag (gtag.js) - Google Analytics