Android 换肤
摘要:导读:皮肤程序的AndroidManifest.xml中配置 皮肤一般含有多个文件,例如图片、配置等文件,分散的文件不利于传输和使用,最好打包。打包的格式一般选择zip格式。这里分两种情况,一种是apk,例如AdwLauncher,它的桌面皮肤格式是一个apk;另一种是自定义扩展名,例如墨迹天气皮肤扩展名是mja,搜狗输入法的皮肤扩展名是sga,它们的文件格式实际上都是zip。 下面我们分别讲解。 一.apk格式 现在的问题变成了一个应用如何读取另一个apk中的资源。 在android系统中,apk之间可以相互读取数据的条件是:有同样的签名,并且AndroidManifest.xm...
阅读全文
竖型tabHost
摘要:导读:所以要想让TabSpec的头(spec的Indicator)竖直排列也就需要我们把TabWidget的排列方式设成Vertical的然后Tabwidget与TabSpec的content部分横着排列,而TabWidget继承自LinearLayout所以原本想在布局文件中直接加android:orientation="horizontal"可是悲剧的是失败了,究其原因是因为在源码中TabWidget在initTabWidget中又做了一次setOrientation(LinearLayout.HORIZONTAL);的初始化,所以最后决定重写Tabwidget部分。代
阅读全文
Android学习笔记技巧之给文本加边框
摘要:BorderTextViews.javapackage xiaosi.BorderTextView;import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.util.AttributeSet;import android.widget.TextView;public class BorderTextViews extends TextView{ private Paint ...
阅读全文
TextView显示html图片的方法
摘要:TextView是不只可以String的,我们平常用的给setText()方法传递String参数的时候,其实是调用的public final void setText (CharSequence text)方法,String类是CharSequence的子类。而CharSequence子类众多,其中有一个接口Spanned,即类似html的带标记的文本。我们可以用它来在TextView中显示html(自然,有很多html标记是不支持的,只支持一部分)。android.text.Html类的一个方法:public static Spanned fromHtml (String source)
阅读全文
天天动听中悬浮歌词效果
摘要:天天动听,这款Android手机上的音乐播放器,相信不少朋友都曾用过。不知大家是否注意到,天天动听有一个迷你歌词的特效。 什么效果呢?就是不管你切到什么画面,歌词永远显示,并且可以拖动。类型QQ音乐,在电脑上播放时显示的歌词效果。 下面我们将这个效果解剖一下,我认为主要有三个难点:1.歌词悬浮在所有页面之上2.歌词可以拖动位置3.歌词的播放效果(颜色覆盖)对于第一点,首先想到的就是WindowManager,这个类可能不少人都用过,一般用于获取屏幕宽度、高度,那么这次就要利用这个类来让我们的歌词永远置顶。 WindowManager wm = (WindowManager)getAppli..
阅读全文
Android 时间和日期的 widget 模拟时钟和数字时钟
摘要:日期widgetDatePicker和DatePickerDialog,DatePickerDialog是装载DatePicker的一个简单的容器,如图所示。分别有一个触发方法OnDateChangedListener( ) 和OnDateSetListener( )。在这个例子中,我们设置了两个button和一个textView,当按键弹出DatePickDialog。步骤1:一些有关时间的java函数获得当前时间的实例:Calendar calendar = Calendar.getInstance();获得当前时间:calendar.get(Calendar.YEAR),通过设置参数可获
阅读全文
巧解Android时区加载过慢的问题
摘要:当在Android系统中切换语言时,会带来一个有趣的bug:SimpleDateFormat在处理“z”时区字段时会花费很长的时间。如果你在一个ListView里多次调用这个方法,就会发现这个ListView在滚动时很不流畅。控制台相关输出如下所示:I/Resources(471):Loadedtimezonenamesforen_USin1904ms.I/Resources(471):Loadedtimezonenamesforen_USin1400ms.I/Resources(471):Loadedtimezonenamesforen_USin1260ms.I/Resources(471.
阅读全文
Android开发技巧:editText 像QQ一样输入表情图像
摘要:EditText和TextView一样,也可以进行图文混排。所不同的是,TextView只用于显示图文混排效果,而EditText不仅可显示,也可混合输入文字和图像,让我们先回顾一下图5.2所示的QQ聊天输入框,在输入框中可以同时输入文字和表情图像。实际上,这种效果在Android SDK中只需要几行代码就可以实现。为了使读者更有学习的冲动,先来欣赏一下即将实现的效果,如图5.16所示。图5.16 在EditText控件中输入文字和图像 为了实现这个程序,首先来准备一些要用到的素材,也就是要在EditText控件中输入的图像文件。本例准备了9个png图像文件(face1.png至face9.p
阅读全文
android 文件上传类(可以直接被调用的)
摘要:public class post {// 如果是文本的文件的话那么通过map类传递进来如果是文件的话通过FormFile传递进来public static String post(String actionUrl, Map params,FormFile[] files) throws IOException {String BOUNDARY = “743520vjdk4e”;String MULTIPART_FROM_DATA = “multipart/form-data”;URL uri = new URL(actionUrl);HttpURLConnection conn = (Htt
阅读全文
ZoomControls放大缩小图片
摘要:ZoomControls控件是一个可以缩放但控件,效果如下图以下是它但一些主要但方法hasFocus():判断焦点hide():隐藏onTouchEvent(MotionEvent event):现这个方法来处理触摸屏移动事件setIsZoomInEnabled(boolean isEnabled):是否允许放大setIsZoomOutEnabled(boolean isEnabled):是否允许缩小setOnZoomInClickListener(View.OnClickListener listener):注册放大监听器setOnZoomOutClickListener(View.OnCl
阅读全文
android平板上的GridView视图缓存优化
摘要:最近在做android平板上的开发,其中涉及到高分辨率之下使用GridView的性能问题。在Android手机软件开发中,如果在ListView或者GridView上使用大数量Item,很多人都会想到ViewHolder......没错,ViewHolder非常适合用在ListView或者每行小于4个Item的GridView。但是如果是高分辨率的设备(android平板甚至android电视),每行包含4个以上Item的话,即使用了ViewHolder也依然卡。 如下图,每行9个Item,而且每个Item的图片都是从网络动态下载的,这时就比较考验GridView视图的优化了。 本文提出的优化
阅读全文
android 上传文件
摘要:android端:private String photoPath = Configuration.SD_CARD_PATH + "/123.jpg";public void uploadFile2Svr() { long l = System.currentTimeMillis(); HttpClient httpclient = new DefaultHttpClient(); HttpPost httppost = new HttpPost(_URL + "uploadFile"); String uploadMsg...
阅读全文
Android与JavaScript方法相互调用
摘要:在Android中通过WebView控件,可以实现要加载的页面与Android方法相互调用,我们要实现WebView中的addJavascriptInterface方法,这样html才能调用android方法,在这里我个人觉得有点和DWR相似。为了让大家容易理解,我写了一个简单的Demo,具体步骤如下:第一步:新建一个Android工程,命名为WebViewDemo(这里我在assets里定义了一个html页面)。第二步:修改main.xml布局文件,增加了一个WebView控件还有Button控件,代码如下:<?xml version="1.0" encoding=
阅读全文
android 带图片的文本框
摘要:基本原理自定义一个IconTextView类继承自TextView,添加iconsrc属性,表示图片。重新onDraw方法,将图片绘制到textVIew前面,然后将textView右移。废话不多说了,直接代码就明白。package com.zb;import android.content.Context;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.graphics.Canvas;import android.graphics.Rect;import android.gr
阅读全文
Android采用Movie播放GIF动画
摘要:Android支持GIF动画,但是如果利用ImageView标签直接写在布局文件中:<ImageView android:id="@+id/gifpicture" android:layout_width="fill_parent" android:layout_height="wrap_content" android:src="@drawable/animation"/> 程序只能加载GIF动画的第一帧。效果如下:如果想要正常播放GIF动画,需要借助Movie实现。写了一个简单示例,程序目录结构如下
阅读全文
实现通讯录的弹窗效果
摘要:相信大家都体验过android通讯录中的弹窗效果。如图所示:android中提供了QuickContactBadge来实现这一效果。这里简单演示下。首先创建布局文件:<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="
阅读全文
TextView 显示效果
摘要:TextView为文本控件,在前面的学习中多次用到,可能读者已经对它的用法有所了解了,这里再单独介绍一下,加深理解,因为TextView是一个非常重要和常用的控件。我们通常在xml布局文件中声明一个TextView,代码如下:<TextView android:id="@+id/tv"android:layout_width="fill_parent"android:layout_height="wrap_content"android:text="@string/hello"/>通常在Activity
阅读全文
Android 调用相册 拍照 实现系统控件缩放 切割图片
摘要:android 下如果做处理图片的软件 可以调用系统的控件 实现缩放切割图片 非常好的效果 今天写了一个demo分享给大家 嘿嘿。package cn.m15.test;import java.io.ByteArrayOutputStream;import java.io.File;import android.app.Activity;import android.content.Intent;import android.graphics.Bitmap;import android.net.Uri;import android.os.Bundle;import android.os.Env
阅读全文
Layout 水平平分空间、垂直平分空间
摘要:今天在论坛看到有人提问,如何让两个按钮平分一行空间。大概效果如下:有人说,设置宽度固定大小,这样应该可以达到效果(本人没试),但是如果使用不同分辨率的手机来看,肯定会有问题,影响用户体验。也有人说,设置宽度属性为 fill_parent, 其实这样是不行的。 页面上只会显示一个按钮,要么A ,要么B。(看你布局文件而定)那么有什么解决办法呢?本人试了RelativeLayout、TableLayout,发现都不可以~~ 最后在Android实例中发现, LinearLayout是可以的。把上图效果的布局贴出来给大家参考一下吧: (会的就不用看了,虽然简单,但是想不到的话花一天也未必能做的出来)
阅读全文
android UI进阶之用gallery实现可滑动的Tab
摘要:今天还是来讲下Tab的实现。android自带的Tab在有比较多条目的时候会显得非常挤,这样不仅不美观,更加影响操作。如果Tab能做成左右滑动的,那就非常好了。其实实现这种效果并不难,而且方法也不少。今天给大家介绍下用gallery这个组件来实现的方法。 首先我们需要写Gallery的适配器。这里我们要注意的是Gallery有一个特点,就是起始一个元素的左边会留下一块空位,如下图所示: 这样我们的Tab显然不是很完美,如何解决?开始想的就是去看gallery的源码,重写他。不过既然我们做的是滑动的,让他左右都可滑动不就ok了?要实现左右滑动,要做的事情就是让里面的元素循环。Gall...
阅读全文