- 浏览: 11519 次
- 性别:
- 来自: 邯郸市
文章分类
最新评论
已经看到了安卓的一角,正式开始Dp Notes开发工作。安卓开发一般是先有美工设计设计好界面,按照界面再布局(没正式开发过,不太清楚)。没有美工(美学,什么?),直接按自己想的来好了。
主要实现一个底部的导航栏,一般软件底部都有导航栏,包含3-5项,点击时切换不同的页面。像微信,不止可以点,还可以滑动,而且滑动时导航栏图标还会有不同的变化,仿一下这个效果。图标颜色的的渐变,不可能有那么多张颜色不同的图片。不知道微信用的什么原理,这里用自定义View来实现一下(之前说过安卓很多控件的基类都是View,那定义一个类来继承View,实现想要的效果,就是自定义控件)。
注:后来做好截的图。
工程名,右键新建一个包,包名右键新建一个类,名字QEndBar,Superclass选择View,确定。软件新建了一个QEndBar.java文件并已打开,但提示有错误,鼠标悬停,是因为没有一个构造方法(类初始化会调用,可以做一些变量的初始化),改正提示选择第二个(可以在xml中引用),加入构造方法。再引入一个重要的方法菜单Source→O/I Mothods→onDraw(Canvas):
onDraw(Canvas canvas),名字看就是画,View呈现在屏幕上的就是这里画上去的。Canvas就相当于一个画布(屏幕的一块区域)。可以调用Canvas的drawXXX(),绘制各种,如canvas.drawText("你好,世界!", 0, 0, paint);参数:文字,x坐标,y坐标,Paint(一个画笔,可以设置不同的字体,颜色,大小等)。定义一个Paint对象Paint paint,构造函数里初始化paint=new Paint():
类定义好了,在xml中引用,layout/activity_main.xml,引入,像普通控件一样(但要加入具体路径(包名))如:com.zdphpn.dpnotes.qview.QEndBar:
预览可能显示不出效果(一般可以,复杂就不行了),运行,“你好,世界!”显示在屏幕下方白色区域内。怎么不在中间,强迫症,修改x,y坐标canvas.drawText("你好,世界!", getWidth()/2-50*3, getHeight()/2, paint),宽度/2-3个字,高度/2(其实不准确),查看效果。
注:屏幕下方显示你好,世界!,不同于TextView。
主要实现一个底部的导航栏,一般软件底部都有导航栏,包含3-5项,点击时切换不同的页面。像微信,不止可以点,还可以滑动,而且滑动时导航栏图标还会有不同的变化,仿一下这个效果。图标颜色的的渐变,不可能有那么多张颜色不同的图片。不知道微信用的什么原理,这里用自定义View来实现一下(之前说过安卓很多控件的基类都是View,那定义一个类来继承View,实现想要的效果,就是自定义控件)。
注:后来做好截的图。
工程名,右键新建一个包,包名右键新建一个类,名字QEndBar,Superclass选择View,确定。软件新建了一个QEndBar.java文件并已打开,但提示有错误,鼠标悬停,是因为没有一个构造方法(类初始化会调用,可以做一些变量的初始化),改正提示选择第二个(可以在xml中引用),加入构造方法。再引入一个重要的方法菜单Source→O/I Mothods→onDraw(Canvas):
public class QEndBar extends View { public QEndBar(Context context, AttributeSet attrs) { super(context, attrs); // TODO Auto-generated constructor stub } @Override protected void onDraw(Canvas canvas) { // TODO Auto-generated method stub super.onDraw(canvas); } }
onDraw(Canvas canvas),名字看就是画,View呈现在屏幕上的就是这里画上去的。Canvas就相当于一个画布(屏幕的一块区域)。可以调用Canvas的drawXXX(),绘制各种,如canvas.drawText("你好,世界!", 0, 0, paint);参数:文字,x坐标,y坐标,Paint(一个画笔,可以设置不同的字体,颜色,大小等)。定义一个Paint对象Paint paint,构造函数里初始化paint=new Paint():
public class QEndBar extends View { private Paint paint; public QEndBar(Context context, AttributeSet attrs) { super(context, attrs); // TODO Auto-generated constructor stub paint=new Paint(); paint.setTextSize(50); } @Override protected void onDraw(Canvas canvas) { // TODO Auto-generated method stub canvas.drawText("你好,世界!", 50, 50, paint); super.onDraw(canvas); } }
类定义好了,在xml中引用,layout/activity_main.xml,引入,像普通控件一样(但要加入具体路径(包名))如:com.zdphpn.dpnotes.qview.QEndBar:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#000000" > <com.zdphpn.dpnotes.qview.QEndBar android:layout_width="match_parent" android:layout_height="50dp" android:layout_alignParentBottom="true" android:background="#FFFFFF" /> </RelativeLayout>
预览可能显示不出效果(一般可以,复杂就不行了),运行,“你好,世界!”显示在屏幕下方白色区域内。怎么不在中间,强迫症,修改x,y坐标canvas.drawText("你好,世界!", getWidth()/2-50*3, getHeight()/2, paint),宽度/2-3个字,高度/2(其实不准确),查看效果。
注:屏幕下方显示你好,世界!,不同于TextView。
日积月累——2016/10/24
发表评论
-
20、长图的加载显示
2017-06-18 16:24 589有时候图片很长,预览只是其一部分,有个类似按钮 ... -
19、GIF动图显示
2017-06-18 16:28 833有时候需要显示动图,可安卓有没有现成的控件,很 ... -
18、ListView显示图片
2017-06-18 16:23 513ListView显示 ... -
17、网络图片加载
2017-06-17 20:57 440如上节,有时候需要显示网络图片,QListVi ... -
15、ListView Item设置
2017-06-17 20:52 508当然想要ListView显示自定义的布局,显示 ... -
16、后台异步处理
2017-06-17 20:56 665大多时候,需要后台(异步)去执行一些费时操作。 ... -
14、自定义ListView
2017-06-13 22:05 718实现了显示的效果,接着来实现一些监听器(接口) ... -
13、自定义ListView
2017-06-13 21:58 545下拉刷新,上拉加载,很流行的啊,总的来说有两种 ... -
12、Dp Notes内容-列表(ListView使用)
2017-06-12 22:48 503完成了一些空架子,开始填内容,从列表开始吧(主 ... -
11、Dp Notes顶部导航栏
2017-06-10 23:05 498完成了底部导航栏,再来顶部导航栏(叫什么?菜单 ... -
10、Dp Notes底部导航栏
2017-06-10 11:48 549有卡顿的现象(可能模拟器原因),滑动时没有渐变 ... -
9、Dp Notes底部导航栏
2017-06-10 11:41 548将ViewPager和QEndBar结合起来, ... -
8、Dp Notes底部导航栏
2017-06-07 21:59 644实现了点击切换效果(只是图标状态变化),如何结 ... -
7、Dp Notes底部导航栏
2017-06-07 21:58 570想要的图标呢?怎么弄上去。从网上找了几个图标, ... -
5、控件美化(drawable使用)
2017-06-04 11:19 663先前的回复页面虽然搭好了,功能也实现了,但页面 ... -
4、第一行代码
2017-06-03 09:12 656上节完成了回复功能的页面搭建,可是想要的功能并 ... -
3、基本控件
2017-06-03 09:01 545控件,很好 ... -
2、你好,世界
2017-06-01 20:23 491开发一个安 ... -
1、初衷
2017-05-31 21:18 390接触安卓已经有一段时间了,从一开始接触J2M ...
相关推荐
在Android应用开发中,底部导航栏(BottomNavigationView)是一个常用组件,它允许用户在多个顶层导航之间进行切换,通常位于屏幕底部。这个控件在Android Design Support Library中提供,可以帮助开发者实现符合...
"z自定义控件uc导航栏"这个主题聚焦于创建一个特定的自定义控件,即用于实现类似UC浏览器底部的导航栏。UC浏览器的底部导航条通常包含多个图标按钮,用于在应用的不同页面间切换,提供便捷的用户操作。 自定义控件...
总的来说,自定义Android的底部导航栏需要理解`BottomNavigationView`的工作原理,以及如何通过样式、菜单、事件监听和动画来实现特定的设计需求。在实现中间凸起的效果时,关键在于创建适当的背景图层和调整选中...
在Android开发中,自定义控件是提升应用独特性和用户体验的重要手段。本示例"Android 自定义控件简单Demo"将向我们展示如何创建一个结合图片和文字的自定义控件,这通常用于构建定制化的按钮、标签或其他UI元素。...
在Android开发中,自定义控件是提升应用独特性和用户体验的有效方式。本教程将引导初学者如何简单地创建一个自定义控件,该控件基于`LinearLayout`进行扩展。通过这个过程,我们可以深入理解Android UI组件的工作...
在Android应用开发中,消息提示...这个控件不仅可以应用于主界面顶部通知栏,也可以应用于各个需要提示新消息的场景,如导航栏、菜单项等。通过这种方式,开发者可以根据应用程序的需求定制化提示方式,提高用户体验。
在Android开发中,自定义控件是提升应用独特性和用户体验的重要手段。自定义控件允许开发者根据需求扩展标准Android组件,实现独特的交互效果和视觉样式。本教程将深入探讨如何在Android中创建自定义控件及其属性...
在Android开发中,自定义控件是提升应用用户体验和界面独特性的重要手段。"安卓自定义控件相关-Android屏幕自适应Demo"这个压缩包文件提供了关于如何在Android平台上创建自定义控件以及实现屏幕自适应的示例。下面将...
1. **布局设计**:在布局XML文件中,为底部导航栏添加一个`BottomNavigationView`组件。例如: ```xml <com.google.android.material.bottomnavigation.BottomNavigationView android:id="@+id/bottom_navigation" ...
可以使用`BottomNavigationView`作为底部导航栏组件,它提供了现成的样式和事件监听。 ```xml <!-- activity_main.xml --> android:id="@+id/fragment_container" android:layout_width="match_parent" ...
为了使底部导航栏符合应用的整体风格,我们可以在主题中定义`BottomNavigationView`的样式。在`styles.xml`中,可以设置颜色、字体大小等属性。 以上就是实现Android底部导航栏的基本流程。在这个“Android底部导航...
在Android开发中,自定义控件是提升用户体验和界面独特性的重要手段。本文将深入探讨如何利用Gallery组件来实现一个图片加文字的自定义控件。Gallery是一个Android提供的水平滚动视图,通常用于展示一系列的图片,...
自定义控件TitleBar可以让开发者根据需求自由设计样式和功能,提升应用的用户体验。本文将深入探讨如何在Android中创建一个自定义的TitleBar控件,并结合文件`CommCircleView`来实现一个特定的功能。 首先,我们来...
6. 使用自定义控件:在布局XML文件中,引入自定义控件并设置属性。例如: ```xml android:layout_width="wrap_content" android:layout_height="wrap_content" app:toggleColor="@color/colorAccent" app:...
6. 使用自定义控件:最后,将自定义控件添加到项目的布局文件中,或者在代码中动态创建并添加到视图树。 三、自定义控件的进阶技巧 1. 优化性能:合理使用硬件加速,避免在onDraw()方法中执行复杂计算,利用Canvas...
在Android中,自定义控件通常基于已有的View或 ViewGroup进行扩展。通过继承一个基础类,我们可以覆盖或添加新的方法来实现特定的功能。例如,如果我们要创建一个带圆角的Button,可以这样开始: ```java public ...
在Android开发中,自定义控件是提升应用用户体验和界面设计独特性的重要手段。本教程主要探讨如何创建一个自定义的EditText控件,该控件在其两侧分别带有加号(+)和减号(-)的按钮,允许用户通过点击按钮增加或...
6. **生命周期管理**:在自定义控件中,我们还需要考虑其生命周期,确保在适当的时候开始、暂停或结束动画。 接下来,我们来看具体实现步骤: 1. **创建新类**:创建一个继承自`View`的Java类,例如`DiffuseView`...
- 底部导航栏应确保在不同分辨率和屏幕尺寸的设备上都能正确显示,可以使用dp单位和百分比布局来实现响应式设计。 10. **无障碍功能**: - 为了满足无障碍需求,确保RadioButton具有合适的accessibility labels和...
### Android自定义控件知识点详解 #### 一、引言 在Android开发过程中,系统提供的标准控件往往能够满足大部分的界面设计需求。然而,在某些特定场景下,开发者可能需要更加个性化、定制化的用户界面元素来实现...