安卓开发3-自定义安卓组件titlebar

1,titlebar

    button  + textview实现

    在layout文件夹内创建titlebar.xml文件

创建一个水平linearlayout  ,将button与text放进去,根绝上一节的 自适应特性 设置 layout-width 与layout-height  值 例如 @dimner/x333

2,放入主布局中

    在朱布局代码中加入<include layout="@文件夹名/xml文件名">在其中也可以加入id之类的属性

    本文中为<include layout="@layout/titlebar"/>

3,数据绑定

    就是把xml布局中的组件找出来,用java代码给其赋值并显示。就是jQuery的docment.getIDby("xxx").value之类的意思

  下面是设计

    第一个就是button onclick事件的设计

        自然而然,点击了这个按钮就是用户看到了页面回去了(返回按钮),页面怎么回去先不管,activity或者fragment,这个另说

    第二个就是 textview里内容的设置,转到不同的页面,页面抬头自然不一样。

  所以就是以上两点(初步设想,方案会有后续改动)

··    (1)看你绑定的数据是啥,简单的arrayadapter,simpleadapter就行

      复杂的就extends baseAdapter

      我的理解是,首先确定数据源,要绑定组件对象,看用哪种adapter

或者是 放进去 绑定对象 的 是一个自定义的组件 ,除了要 显示这个自定义的组件 外 ,还要把数据绑到 这个自定义的组件 里

      

     (2)public class NineSquareAdaper extends BaseAdapter

package com.example.administrator.oop;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;

/**
 * Created by Administrator on 2015/6/25.
 */
public class NineSquareAdaper extends BaseAdapter {
    private Context context;

    public NineSquareAdaper(Context context) {
        this.context=context;
    }

    private Integer[] images = {
            //九宫格图片的设置
            R.drawable.icon01,
            R.drawable.icon02,
            R.drawable.icon03,
            R.drawable.icon04,
            R.drawable.icon05,
            R.drawable.icon06,
            R.drawable.icon07,
            R.drawable.icon08,
            R.drawable.icon09,
    };
    private String[] texts = {
            //九宫格图片下方文字的设置
            "记录支出",
            "记录收入",
            "账本管理",
            "类别管理",
            "查看图表",
            "收支对照",
            "记录心得",
            "新闻公告",
            "系统设置",
    };
    @Override
    // 1  当系统开始绘制ListView的时候,首先调用getCount()方法。得到它的返回值,即ListView的长度
    public int getCount() {
        return images.length;
    }
//getItem()和getItemId()则在需要处理和取得Adapter中的数据时调用。
    @Override
    public Object getItem(int position) {
        return position;
    }

    @Override
    public long getItemId(int position) {
        return position;
    }

    @Override
    // 2 根据getCount()返回长度逐一绘制ListView的每一行
    public View getView(int position, View convertView, ViewGroup parent) {
        ImgTextWrapper wrapper;
        if(convertView==null) {
            wrapper = new ImgTextWrapper();
//            在实际开发中LayoutInflater这个类还是非常有用的,它的作用类似于findViewById()。不同点是LayoutInflater是用来找res/layout/下的xml布局文件,并且实例化;而findViewById()是找xml布局文件下的具体widget控件(如Button、TextView等)。
//            具体作用:
//            1、对于一个没有被载入或者想要动态载入的界面,都需要使用LayoutInflater.inflate()来载入;
//            2、对于一个已经载入的界面,就可以使用Activiyt.findViewById()方法来获得其中的界面元素
            //http://www.cnblogs.com/top5/archive/2012/05/04/2482328.html
            LayoutInflater inflater = LayoutInflater.from(context);
            convertView = inflater.inflate(R.layout.squares, null);
            convertView.setTag(wrapper);
            convertView.setPadding(15, 15, 15, 15);  //每格的间距
        } else {
            wrapper = (ImgTextWrapper)convertView.getTag();
        }

        wrapper.imageView = (ImageView)convertView.findViewById(R.id.ItemImage);
        wrapper.imageView.setBackgroundResource(images[position]);
        wrapper.textView = (TextView)convertView.findViewById(R.id.ItemText);
        wrapper.textView.setText(texts[position]);

        return convertView;
    }
}

class ImgTextWrapper {
    ImageView imageView;
    TextView textView;

}

  

        

时间: 2024-10-07 11:50:10

安卓开发3-自定义安卓组件titlebar的相关文章

安卓开发复习笔记——TabHost组件(实现底部菜单导航)

安卓开发复习笔记——TabHost组件(实现底部菜单导航) 4 来源:cnblog    阅读:1048   时间:2014-09-16 什么是TabHost? TabHost组件的主要功能是可以进行应用程序分类管理,例如:在用户使用windows操作系统的时候,经常见到如图所示的图形界面. TabHost选项卡,说到这个组件,不得不先说一件事情,翻翻谷歌提供给我们的API,我们可以发现这样的一段话: 它告诉我们,这个组件在安卓4.0之后已经被废弃了,建议我们新的程序应该使用Fragment组件

安卓开发学习笔记-安卓开发之环境配置

作为一个工作了五年左右的C#资深开发程序员,虽然知道现在开始学安卓开发有点半路出家的味道,但是俗话说技多不压身,由于大学期间学习了java这门语言,而安卓开发又是以java作为开发语言,所以我感觉自己可以稍微涉足安卓,不求涉深,只求能懂,当然如果能有小成,也是我所希冀的. 要想学习安卓开发,首先肯定是配置安卓开发环境,安卓开发不像是asp.net或者winfrom.mvc之类的,直接安装完一个vs了事,然后你就可以大行其道的进行基于C#语言的项目开发了,搭建安卓开发环境,首先我们需要安装java

安卓开发笔记——自定义广告轮播Banner(无限循环实现)

关于广告轮播,大家肯定不会陌生,它在现手机市场各大APP出现的频率极高,它的优点在于"不占屏",可以仅用小小的固定空位来展示几个甚至几十个广告条,而且动态效果很好,具有很好的用户"友好性",下面来看几个示例图:     再来看下我仿写的效果: 关于广告轮播Banner这个东西,GitHub上面应该有现成的开源组件,不过我没去找过,觉得实现起来不会太难,就自己去仿写了,下面我说下实现的思路: 1.首先看到这个可以滑动切换图片的界面,我们很自然就会想到ViewPager

安卓开发入门指南--安卓手机自适应draw9patch不失真背景设置具体步骤

一.[安卓手机自适应draw9patch不失真背景]实际问题 前一段时间,去长江玩了一趟,拍了很多照片,不过都是手机拍的,正常尺寸都是看不清楚老婆的脸蛋,就不自在的开始放大放小,可是一定程度图片就失真了.不知道你们都遇见过这样的情况吗?其实作为一个程序开发者,我很清楚这个手机自适应draw9patch不失真背景不怎么好,今天不妨就实际问题给大家解决一下. 首先背景自适应且不失真问题的存在已经给大家聚过例子了,希望大家多在生活中观察,遇到任何安卓app问题,可加QQ群:175229978进行交流.

【Android 应用开发】 自定义 View 组件 -- 圆形进度条

转载著名出处 : http://blog.csdn.net/shulianghan/article/details/40351487 代码下载 : -- CSDN 下载地址 : http://download.csdn.net/detail/han1202012/8069497 ; -- GitHub 地址 : https://github.com/han1202012/CircleProcess.git ; -- 工程示例 : 一. 相关知识点解析 1. 自定义 View 组件构造方法 构造方

安卓开发复习笔记——WebView组件

我们专业方向本是JAVA Web,这学期突然来了个手机App开发的课设,对于安卓这块,之前自学过一段时间,有些东西太久没用已经淡忘了 准备随笔记录些复习笔记,也当做温故知新吧~ 1.什么是WebView? WebView(网络视图)能加载显示网页,可以将其视为一个浏览器,它使用了WebKit渲染引擎加载显示网页. 废话不多说,直接上代码 1.需要在xml布局文件中声明WebView组件 1 <WebView 2 android:id="@+id/webview" 3 androi

安卓开发复习笔记——ViewPager组件(仿微信引导界面&gt;)

这2天事情比较多,都没时间更新博客,趁周末,继续继续~ 今天来讲个比较新潮的组件——ViewPager 什么是ViewPager? ViewPager是安卓3.0之后提供的新特性,继承自ViewGroup,专门用以实现左右滑动切换View的效果. 如果想向下兼容就必须要android-support-v4.jar这个包的支持,这是一个来自google提供的一个附加包. 通俗点来讲,就是现在市面上大多数app,安装完第一次打开软件会出现的一个左右滑动的引导界面. 先来看下效果图:     这是一个

安卓开发笔记——自定义HorizontalScrollView控件(实现QQ5.0侧滑效果)

对于滑动菜单栏SlidingMenu,大家应该都不陌生,在市场上的一些APP应用里经常可以见到,比如人人网,FaceBook等. 前段时间QQ5.0版本出来后也采用了这种设计风格:(下面是效果图) 之前在GitHub上看到过关于此设计风格的开源项目,它只需要引入对应的类库,就可以定制灵活.各种阴影和渐变以及动画的滑动效果的侧滑菜单. 但作为开发人员,在学习阶段还是建议尽可能的去自己实现,所以今天我不讲此开源项目的使用方式,我们用自定义HorizontalScrollView来实现此效果. 下面先

安卓开发复习笔记——Gallery组件+ImageSwitcher组件

什么是Gallery? Gallery是一个水平的列表选择框,它允许用户通过拖动来查看上一个.下一个列表选项. 下图是今天要实现的最终效果: 利用Gallery组件实现的一个横向显示图像列表,可以通过左.右滑动屏幕来切换图像,并加上ImageSwitcher实现一个大图片预览功能. 1.一步一步来吧,首先先解决下上半部分(图像导航) 先来看下效果图,下图是利用Gallery组件实现的一个横向显示图像列表,可以通过左.右滑动屏幕来切换图像.   直接上代码,注释很全. MainActivity.j