- 浏览: 332075 次
- 性别:
- 来自: 上海
最新评论
-
xuanyuanxiaoxue:
...
Android - LayoutInflater -
柴兴博:
不错 多谢
Android 悬浮Activity并可拖动(访悬浮歌词) -
di1984HIT:
写的很好,我收藏一下。
java之动态代理模式(JDK和cglib) -
chinacssnj:
待测试,明天测,测试的结果发给大家
网络开发上传文件到服务器 -
fx_199182:
...
Android之MediaPlayer
文章列表
Android Touch事件
- 博客分类:
- android 事件处理
Android中跟Touch事件有关的事件有三个: public boolean dispatchTouchEvent(MotionEvent ev):传递Touch事件至target view(可以是自己)。 public boolean onInterceptTouchEvent(MotionEvent ev):在ViewGroup中定义,用于拦截Touch事件的传递。 ...
研究了一下android的touch事件,从doc到google,算是有了一些初步的理解。以下是经过消化的个人理解,有可能与事实不符,欢迎指正。
首先,来了解一下android的事件机制。android的基本元事件我猜应该有5种,理由是MotionEvent类 ...
ndroid的px、dip、sp的区别
- 博客分类:
- Android其他
一、 概述
dip: device independent pixels(设备独立像素). 不同设备有不同的显示效果,这个和设备硬件有关,一般我们为了支持WVGA、HVGA和QVGA 推荐使用这个,不依赖像素。 好了,入正题吧,先说说px,px就是像素,如果用px,就会用实际像素画,比个如吧,用画一条长度为240px的横线,在480宽的模拟器上看就是一半的屏宽,而在320宽的模拟器上看就是2/3的屏宽了。 而dip,就是把屏幕的高分成480分,宽分成320分。比如你做一条160dip的横线,无论你在320还480的模拟器上,都是一半屏的长度。
px (pixe ...
Android中实现view的更新有两组方法,一组是invalidate,另一组是postInvalidate,其中前者是在UI线程自身中使用,而后者在非UI线程中使用。
Android提供了Invalidate方法实现界面刷新,但是Invalidate不能直接在线程中调用,因为他是违背了单线程模型:Android UI操作并不是线程安全的,并且这些操作必须在UI线程中调用。
Android程序中可以使用的界面刷新方法有两种,分别是利用Handler和利用postInvalidate()来实现在线程中刷新界面。
1,利用invalidate()刷新界面
实 ...
Framework框架
Framework
定义了客户端
组件和服务端组件功能及接口。以下阐述中,“应用程序”一般是指“
.apk
”程序。
框架中包含三个主要部分,分别为服务端、客户端和
Linux
驱动。
6.1.1
服务端
服 ...
我想大多数人,对于这3个东西的概念能区分,但是具体区别在哪却很难说出来。
我这里根据我个人的理解来讲讲我个人对这3个概念的理解。当然这里设计到通用的事件窗口模型等通用GUI设计,我这里就不打算讲了,纯粹从概念上来进行区分。
Activity
是Android应用程序的载体,允许用户在其上创建一个用户界面,并提供用户处理事件的API,如onKeyEvent,
onTouchEvent等。
并维护应用程序的生命周期(由于android应用程序的运行环境和其他操作系统不同,android的应用程序是运行在框架之内,所以他的应用程序不能
当当从进程的级别去考虑,而更多是从概念上去 ...
在新浪微博Android客户端的开发的课程中呢要用的得自定义的Dialog,这个Dialog个人觉得还不错,所以就那处理来分享了。如果有兴趣的朋友也可以观看视频,视频中会有详细的介绍(新浪微博Android客户端视频教程区)。首先呢,还是让我们先来看效果图,正所谓有图有真相:下面我们看看是怎么来实现的:第一步:在res/layout目录下新创建一个布局文件:authorize_dialog.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android= ...
全球定位系统(Global Positioning
System,GPS),是一个中距离圆型轨道卫星导航系统,可以为地球表面的绝大部分地区(98%)提供准确的定位、测速和高精准的时间标准。GPS广
泛运用于军事、物流、地理、移动电话、数码相机、 ...
在开发Android移动客户端的时候往往要使用多线程来进行操作,我们通常会将耗时的操作放在单独的线程执行,避免其占用主线程而给用户带来不好的用户体验。但是在子线程中无法去操作主线程(UI 线程),在子线程中操作UI线程会出现错误。因此android提供了一个类Handler来在子线程中来更新UI线程,用发消息的机制更新UI界面,呈现给用户。这样就解决了子线程更新UI的问题。但是费时的任务操作总会启动一些匿名的子线程,太多的子线程给系统带来巨大的负担,随之带来一些性能问题。因此android提供了一个工具类AsyncTask,顾名思义异步执行任务。这个AsyncTask生来就是处理一些后台的比较 ...
ListView的分页显示
- 博客分类:
- Android之控件及布局
package com.anddev.ListMore.Test;
import android.app.Activity;
import android.os.Bundle;
import android.view.Gravity;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.ListView;
impor ...
<TextView android:id="@+id/tvText1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="text1"
android:textSize="28sp"
android:textStyle="bold"
android:textColor="#FFFFFF"
...
GridView使用AdapterView动态加载数据情况下,无论是在onCreate、Onstart、OnResume方法中调用
getChildCount()均为0,这说明数据并没有在Activity最初启动后立即加载为GridView的子View,那如果要把
GridView实现为Tab风格的菜单,是必须要调用它的状态选中的,如果在Activity中调用的话就会抛
nullpointerexception了,那要怎么操作呢?
/**
* 构造菜单Adapter
* @param menuNameArray 名称
* @param imageResourceArr ...
ui设计时,需要指定某个元素的drawable时,有时候需要告诉Android我希望设置它为透明,偶然在源码中发现,就是以下这段代码:
android:background="@android:color/transparent"
对于一个ImageView,如果我们要加上边框,比如宽为3dp的灰色框,我们怎么做呢?
有种方法,是自己定义一个MyImageView类,继承自ImageView,在其onDraw方法中画canvas。
还有设置一个带有边框的背景图片的方法。
这里给出一种简单方法,既不需要创建衍生的类,也不需要准备图片。采用xml定义的方式实现。
背景定义xml: bg_border1.xml
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http ...
我们看到很多Android应用都具有自动更新功能,用户一键就可以完成软件的升级更新。得益于Android系统的软件包管理和安装机制,这一功能实现起来相当简单,下面我们就来实践一下。首先给出界面效果:
1. 准备知识
在AndroidManifest.xml里定义了每个Android apk的版本标识:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.myapp"
android:versionC ...