- 浏览: 1322032 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (132)
- android Launcher (15)
- 收藏夹 (3)
- UI设计 (28)
- J2EE (2)
- android网络编程 (8)
- 项目经理是熬出来的 (8)
- Android图像处理 (5)
- 系统层开发 (12)
- 数据库 (2)
- 程序员是熬出来的 (2)
- Android技巧 (11)
- 地图相关 (2)
- Android底层 (9)
- Android疑难杂症 (4)
- 开发工具 (4)
- 知识梳理 (8)
- 源码阅读 (7)
- Media媒体库 (5)
- 调试技术 (3)
- Android蓝牙 (3)
- 动画特效 (5)
- jni (3)
- 串口通信 (1)
- Android优化 (3)
- 架构设计 (1)
- Android Test (1)
- 翻译系列 (0)
最新评论
-
我说123木头人雪雪:
...
Android截屏并对图片做高斯模糊处理 -
ysc123shift:
没有源码。
Android截屏并对图片做高斯模糊处理 -
我de专属doll:
你那个Jni库是自己编译的还是有现成的呢?
Android media媒体库分析之:分类别统计媒体文件大小 -
zhunanfengfeimeng:
想做项目经理?这些工具必须了解 -
ls0609:
一个带人脸识别的智能照相机demohttp://blog.cs ...
Android 调用相机,获取的图片太小
先看一下效果图:
要实现在每个页面显示相同的Title,能想到的办法有:
1、创建单独的xml布局文件,在页面主配置文件中用include标签引入,如果要修改内容,可以再代码中获取View,修改内容;
2、用Android提供的Theme(在新建项目时可选),toolbar ,ActionBarActivity可以实现现在流行的material design,不过ActionBarActivity已经被AppCompatActivity取代了;
3、在1的基础上引入面向对象的思想,抽象出基类Activity(Fragment)。
下面记录一下3的实现过程:
1、新建抽象的Activity:
其他页面Activity只要继承此BaseActivity即可;
要实现在每个页面显示相同的Title,能想到的办法有:
1、创建单独的xml布局文件,在页面主配置文件中用include标签引入,如果要修改内容,可以再代码中获取View,修改内容;
2、用Android提供的Theme(在新建项目时可选),toolbar ,ActionBarActivity可以实现现在流行的material design,不过ActionBarActivity已经被AppCompatActivity取代了;
3、在1的基础上引入面向对象的思想,抽象出基类Activity(Fragment)。
下面记录一下3的实现过程:
1、新建抽象的Activity:
public abstract class BaseActivity extends Activity { public static List<WeakReference<BaseActivity>> baseActivityList = new ArrayList<WeakReference<BaseActivity>>(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); WeakReference<BaseActivity> ba = new WeakReference<BaseActivity>(this); baseActivityList.add(ba); } @Override public void setContentView(int layoutResID) { View contentView = LayoutInflater.from(this).inflate(layoutResID, null); setContentView(contentView); } @Override public void setContentView(View view) { // TODO Auto-generated method stub setContentView(view,null); } @Override public void setContentView(View view,ViewGroup.LayoutParams lp) { boolean hasTitle = hasTitle(); if(hasTitle){ int titleLayoutId = getCustomTitleLayoutId(); requestWindowFeature(Window.FEATURE_CUSTOM_TITLE); if(lp == null){ super.setContentView(view); }else{ super.setContentView(view, lp); } Window w = getWindow(); w.setFeatureInt(Window.FEATURE_CUSTOM_TITLE, titleLayoutId); Drawable titleBg = getTitleBg(); if(titleBg != null){ ViewGroup titleGroup = (ViewGroup)findViewById(R.id.title_root_group); titleGroup.setBackgroundDrawable(titleBg); } initTitle(); }else{ requestWindowFeature(Window.FEATURE_NO_TITLE); if(lp == null){ super.setContentView(view); }else{ super.setContentView(view, lp); } } } /** * 初始化View,分三部分: * Left、Center、Right:可以设置图片、文字、点击事件 */ private void initTitle(){ titleLeftTV = (TextView)findViewById(R.id.title_left_tv); titleLeftIV = (ImageView)findViewById(R.id.title_left_iv); titleNameTV = (TextView)findViewById(R.id.title_name_tv); titleRightTV = (TextView)findViewById(R.id.title_right_tv); titleRightIV = (ImageView)findViewById(R.id.title_right_iv); //下面三个方法根据自己的要求实现; setTitleLeftView(); setTitleNameView(); setTitleRightView(); } /** * 是否显示Title,子类可以重写; * @return */ protected boolean hasTitle(){ return true; } /** * Title布局文件; * @return */ protected int getCustomTitleLayoutId(){ return R.layout.custom_common_title; } /** * Title背景,子类可以重写; * @return */ protected Drawable getTitleBg(){ return null; } @Override protected void onDestroy() { super.onDestroy(); for (int i = 0; i < baseActivityList.size(); i++) { WeakReference<BaseActivity> ba = baseActivityList.get(i); if (ba != null && null != ba.get() && ba.get() == this) { baseActivityList.remove(i); } } } }
其他页面Activity只要继承此BaseActivity即可;
发表评论
-
Android textview实现局部点击
2015-04-20 18:18 4658先看效果图: 实现代码,很简单的: private ... -
Android中单击空白区域隐藏键盘
2015-03-06 11:29 4750项目开发中,产品经理拿着iPhone上的效果说Android! ... -
Android ViewPager切换的N种动画
2014-09-10 17:55 49893基于上一篇《Android ViewP ... -
Android ViewPager使用技巧
2014-09-10 17:23 10756最近项目中用到ViewPage,因此对这个3.1之后新增的接口 ... -
知识梳理:Android子线程中更新UI的3种方法
2014-09-03 16:09 76478在Android项目中经常有碰到这样的问题,在子线程中完成耗时 ... -
Android ListView 滚动的N种方法
2014-07-25 16:07 8379Android 里面让ListView滚动有N种方法,这儿列举 ... -
(转载)关于分辨率,还是没搞清楚
2014-07-22 15:41 8741.drawable-(hdpi,mdpi,ldpi)的区别 ... -
Android多分辨率支持
2014-01-10 11:45 0Android官方给出的解决方案: http://develo ... -
Android播放动画后点击事件消失
2012-11-09 10:36 7257问题:为imageview添加了动画,动画播放完之后image ... -
为Android应用程序添加两个入口
2012-10-29 09:43 1746项目中有这样一个需求: 安装一个APK之后,生成两个图标,点击 ... -
Android 获取屏幕尺寸
2012-06-28 10:28 1909项目需要在service中获取屏幕分辨率,即手机的尺寸,网上搜 ... -
Android dialog 全屏
2012-02-11 17:08 19283Android中让Dialog全屏: 一、在style中定义样 ... -
android 让Activity透明起来
2011-08-26 21:55 3494让自己的Activity变成透明的:关键是设置Activity ... -
android图片缩放(指定大小)
2011-07-15 10:58 19269private Drawable zoomDrawabl ... -
用ScrollView和TableLayout实现类似于Gallery的效果
2014-07-15 09:45 3635想实现左右拖动ImageView或TextView的效果,于是 ... -
android自定义ViewGroup总结
2014-07-15 09:45 6904在稍微复杂一些的布局中就要自己定义一个ViewGroup,里面 ... -
android 屏幕密度和资源的关系
2014-07-15 09:46 1322一、概念介绍: 1、density值表示每英寸有多少个显示点, ... -
android通知小结
2011-06-17 10:22 3114有时候要让我们发的通知不被用户清除,这就需要将通知加入正在运行 ... -
android小部件(widget)小结
2011-06-17 10:21 7346一、为widget添加点击事件 在继承自AppWidgetPr ... -
android TabHost小结
2011-06-09 11:47 22368TabHost是整个Tab的容器,包括两部分,TabWidge ...
相关推荐
总结,创建一个通用的Android Title Bar涉及自定义布局设计、在Activity中应用、根据不同场景调整内容,以及实现沉浸式状态栏效果。通过这些步骤,我们可以为应用程序打造统一且功能丰富的头部导航,提升用户体验。...
这个标题栏可以在多个Activity或Fragment之间重用,只需简单地调用相应的方法进行配置即可。这不仅可以提高代码质量,还可以减少出错的可能性,使得整个项目的维护变得更加容易。在实际项目中,你可能还需要考虑如何...
在Android应用开发中,创建一个通用菜单栏是提高应用程序用户体验的关键步骤之一。菜单栏通常位于屏幕的顶部或底部,提供导航功能,使用户能够轻松访问各个功能模块。本篇文章将详细探讨如何在Android中实现一个可...
### Android通用代码开发规范 #### 一、应用包名 应用包名的命名遵循固定的格式:`com.公司名.应用名`。这样的命名方式有助于组织项目结构,并且能够清晰地展示出应用所属的公司及具体的应用名称。例如,一个属于...
通过封装这样一个通用TitleBar,开发者可以在多个Activity中复用相同的TitleBar样式,减少代码重复,提高开发效率。同时,由于提供了自定义接口,开发者可以根据实际需求自由调整TitleBar的功能和样式,从而实现更...
总之,Android的底部导航栏是构建多页面应用时的重要工具,通过`BottomNavigationView`及其相关配置,开发者可以创建一个通用、可扩展且高度定制的底部导航栏,满足不同应用的需求。在实现过程中,注意保持良好的...
`Toolbar`是一个可以作为应用程序中任何视图的通用操作条的View组件,它首次在Android 5.0(Lollipop)版本引入。`Toolbar`允许开发者自由定制菜单、图标、标题等元素,使其与应用的视觉风格保持一致。 要使用`...
- **通用属性**:如`android:layout_width`、`android:layout_height`控制视图大小,`android:background`设置背景。 - **EditText属性**:`android:inputType`定义输入类型(如文本、数字等),`android:text`...
android:id="@+id/tv_title" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="头部栏标题" android:textSize="20sp" android:textColor="@...
在BaseActivity中,我们首先通过`setContentView`加载自定义的标题栏布局`activity_abstract_title.xml`。这个布局文件应该包含你需要的所有元素,如标题文本、返回按钮、关闭按钮和提交按钮。接下来,通过`...
虽然Android官方并未明确指定一套编码规范,但在实际开发过程中,根据社区经验和项目实践,我们可以总结出一些通用的规则。 1. **布局文件命名**: - 布局文件名需采用全小写字母,避免使用大写字母或特殊字符,以...
1. **通用属性** - `android:id`:定义控件的唯一ID。 - `android:layout_width`/`android:layout_height`:定义控件的宽度和高度。 - `android:background`:设置控件的背景。 2. **EditText部分属性** - `...
11. **非全屏状态下隐藏title栏**:在`AndroidManifest.xml`中,针对指定的Activity设置`android:theme="@android:style/Theme.NoTitleBar"`,可以使其在启动时不显示标题栏。 12. **获取屏幕方向**:通过`...
4.4.1、非全屏状态下不显示title标题栏 50 4.4.2、标题栏进度指示器 50 4.4.3、titleBar 高级实现方法(更美观) 51 4.4.4、获取标题栏和状态栏高度 57 4.4.5、标题栏显示简单的进度框 57 4.5、MENU 58 4.5.1、简单的...
ActionBar是Android 3.0及更高版本中的一个组件,而Toolbar则在Android 5.0(API级别21)引入,作为更通用的视图,可以替代ActionBar使用。无论选择哪个,自定义标题栏的基本步骤大致相同: 1. **创建布局文件**:...
虽然Android官方没有提供正式的编码规范,但开发者社区已经形成了一些通用的约定。以下是一些主要的规范点: 1. **布局文件命名**:布局文件的名称应全部使用小写字母,避免使用缩写,且使用下划线分隔语义单词,如...
标题中的"android自定义View—顶部导航栏"正是指这个过程,它旨在创建一个可重用的组件,用于在多个Activity之间提供一致的导航体验。 首先,我们从基础开始,理解Android中的自定义View。自定义View是扩展系统提供...
本篇文章将详细讲解如何在Android应用中使用ListView和SimpleAdapter来构建一个通用的数据展示功能。 首先,理解ListView的核心概念。ListView通过适配器(Adapter)与数据源进行绑定,适配器的作用是将数据转化为...
本话题将深入探讨如何使用C#编写自定义的通用BaseAdapter,以便更有效地生成ListView组件。ListView是Android中一个非常重要的控件,常用于展示大量数据集合,而BaseAdapter则是连接数据源与ListView的关键桥梁。 ...
总结,Android中组合控件实现布局复用的方法主要分为两步:一是创建自定义布局文件,定义通用的UI结构;二是创建自定义View类,解析并应用自定义属性,处理布局内的交互逻辑。通过这种方式,我们可以创建出可复用的...