Welcome 微信登录

首页 / 移动开发 / Android

Android界面刷新的方法分享

Android界面刷新的方法分享

Android提供了Invalidate方法实现界面刷新,但是Invalidate不能直接在线程中调用,因为他是违背了单线程模型:Android UI操作并不是线程安全的,并且这些操作必须在UI线程中调用。Android程序中可以使用的界面刷新方法有两种,分别是利用Handler和利用postInvalidate()来实现在线程中刷新界面。利用Handler刷新界面实例化一个Handler对象,并重写handleMessage方法调用invalidate(...
Android控件系列之Shape使用方法

Android控件系列之Shape使用方法

如果你对Android系统自带的UI控件感觉不够满意,可以尝试下自定义控件,我们就以Button为例,很早以前Android123就写到过Android Button按钮控件美化方法里面提到了xml的selector构造。当然除了使用drawable这样的图片外今天Android开发网谈下自定义图形shape的方法,对于Button控件Android上支持以下几种属性shape、gradient、stroke、corners等。复制代码 代码如下: 我...
android UI进阶之android中隐藏的layout 抽屉的使用方法

android UI进阶之android中隐藏的layout 抽屉的使用方法

最近在写一个应用,想把设置页面和应用页面放在一起,这样就能实现用户可以实时看到自己的设置对UI的影响,从而更方便的设置用户喜欢的界面。想了一段时间,发现用slidingDrawer这个控件可以实现这个效果。也就是一个抽屉。拉开抽屉,占据半个屏幕,另外半个屏幕还是显示应用页面。效果还是不错的。今天就和大家分享一下android中这个抽屉效果。其实在android的lanucher就是一个抽屉,打开它就可以看到安装的应用。相信大家都见过用过。下面我们就来做个相...
Android 进入设备后台data文件夹的办法

Android 进入设备后台data文件夹的办法

大家都知道,我们在进行android项目开发时,当涉及到需要存取数据,也就是需要进行数据的互动时,我们就需要把数据存放在虚拟设备的data 文件夹中。之前在相关书籍中了解到如何把文件上传到设备,如前面所说的mp3,mp4播放器中需要上传到设备中的音频及视频文件。方法如下:C:> adb push c:codesamplevideo.mp4 /data/samplevideo.mp4 今天在网上无意中又了解到了如何进入设备的后台的命令,希望对大家...
解决EditText、ListView以及GridView同时使用,输入法自动跳出来的方法

解决EditText、ListView以及GridView同时使用,输入法自动跳出来的方法

有一个Activity,里面有个EditText下面是个ListView,每次运行这个Activity,输入法都自动跳出来,太恼火了。因为这个ListView是显示数据库的,一开始怀疑数据库游标Cursor的问题,看来怀疑错了,就是EditText和ListView同时出现,导致输入法自动跳出来。事实上我们需要的是,点击EditText后,输入法才出来。解决方法有:方法1:在onCreate()里,this.getWindow().setSoftInput...
Android UI开发 View自绘控件 分享

Android UI开发 View自绘控件 分享

很多时候想要设计漂亮的Android UI,使用Android自带的控件无法满足我们的需要就要考虑自绘控件,在Android界面显示类View,可以通过继承扩展重写相关方法来实现我们的图形绘制。 首先我们需要了解下View类的底层实现,在SDK中我们可以看到View直接继承于Java的基类Object,实现了图形绘制和按键事件 Drawable.Callback KeyEvent.Callback的相关方法,我们自绘时主要实现其内部的onDraw方法,...
Android开发笔记之:Handler Runnable与Thread的区别详解

Android开发笔记之:Handler Runnable与Thread的区别详解

在java中可有两种方式实现多线程,一种是继承Thread类,一种是实现Runnable接口;Thread类是在java.lang包中定义的。一个类只要继承了Thread类同时覆写了本类中的run()方法就可以实现多线程操作了,但是一个类只能继承一个父类,这是此方法的局限。下面看例子:复制代码 代码如下:packageorg.thread.demo; classMyThreadextendsThread{ privateStringname; public...
<< 121 122 123 124 125 126 127 128 129 130 >>