自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Fenice

死生契阔,与子成说。执子之手,与子偕老。

  • 博客(5)
  • 资源 (26)
  • 收藏
  • 关注

原创 自定义组件-绘制时钟

1、效果图2、Canvas对象详解1.translate(x,y):平移,将画布的坐标原点向左右方向移动x,向上下方向移动y.canvas的默认位置是在(0,0).   例子:画布原点假如落在(1,1),那么translate(10,10)就是在原点(1,1)基础上分别在x轴、y轴移动10,则原点变为(11,11)。2.scale(x,y):扩大。x为水平方向的放大

2015-02-14 11:33:35 1218

转载 Android 分析android 客户端保持session 不过期的方式

首先要知道session和cookie,session是存在服务器的的用来区分不同的会话的,是一种服务器机制,cookie 是客户端登陆服务器以后,服务器需要为某个客户端的请求创建一个session的时候,服务器首先检查这个客户端的请求里是否包含了一个session标识-称为session id,如果已经包含一个session id则说明以前已经为此客户创建过session,服务器就按照ses

2015-02-13 11:14:55 1745

原创 第三方插件-微信支付接入注意问题

1、对于订单的签名在服务端,因此客户端相对比较简单。2、调用支付界面 private void weixinPay() { Map mapOrder = getOrderMap(); api = WXAPIFactory.createWXAPI(WebPayActivity.this,null); api.registerApp(mapOrder.get("appid"));

2015-02-12 17:24:51 5988

原创 自定义组件(14)- 圆弧进度条

1、最终的效果图2、设计思路和用到知识点2.1 了解自定义组件的实现的基本流程,这里重写了onMeasure和onDraw方法2.2 计算文字的高度和宽度2.3 对canvas的基本方法2.4 通过handler进行发送消息,响应inValidate方法,然后刷新界面源代码:package com.example.canvastest.image;import

2015-02-09 14:33:02 1019

转载 Android中的Handler, Looper, MessageQueue和Thread

Android中的Handler, Looper, MessageQueue和Thread前几天,和同事探讨了一下Android中的消息机制,探究了消息的发送和接收过程以及与线程之间的关系。虽然我们经常使用这些基础的东西,但对于其内部原理的了解,能使我们更加容易、合理地架构系统,并避免一些低级错误。对于这部分的内容,将分成4小节来描述:1.职责与关系2.消息循环3.线程与更

2015-02-06 10:52:41 520

opencore框架实现wav和amr的转换

opencore框架实现wav和amr的转换 AmrInputStream AmrInputStream AmrInputStream

2015-12-22

Lame 录音MP3

将录音转换成MP3

2015-12-22

android listView顶部悬浮效果实现

android listView顶部悬浮效果实现

2015-06-17

listview分类显示

listview分类显示

2015-06-13

classloader

这篇文章主要讲类加载器在android中如何动态的加载其他工程类的过程,对于类加载器的知识就跳过了。

2015-04-28

侧滑菜单ViewGroup

侧滑菜单

2015-01-20

仿ViewPager

用到Scroller类,滚动的速度;GestureDetector手势类,应用到了快速滑动方法。

2015-01-20

Tab滑动标签

这里的菜单是通过两种方式来实现,一种是通过布局文件,一种是通过自定义组件LinearLayout。自定义只需要传入菜单的名字即可,切换时需要监听事件。下面是一个viewpager+fragment实现,在滑动时改变tab的选中项。 自定义tab底部线是采用TranslateAnimation动画来实现滚动,布局文件采用viewpager的方法onPageScrolled和onPageScrollStateChanged来实现。

2015-01-16

JNIAndroid

里面包含了C和java之间的调用,简单对象的调用,复杂对象的处理,回调函数,异常处理

2015-01-12

android 仿google play效果,ListView/GridView下拉刷新,上拉加载更多,自动加载异步请求数据以及分页数据

import com.viewpagerindicator.TabPageIndicator; /** * @类名:ViewPagerListViewActivity * @描述:TODO(左右滑动) * @作者:zhaohao * @时间 2013-7-1 上午11:23:33 */ public class ViewPagerListViewActivity extends FragmentActivity { private static final String[] CONTENT = new String[] { "头条娱乐", "汽车世界", "风景", "动物世界","美图","图文展示", "各地风俗","美食天下","军事","一周军事看点"}; private int touchSlop; TouchViewPager pager =null; FragmentPagerAdapter adapter=null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.simple_tabs); adapter = new GoogleMusicAdapter(getSupportFragmentManager()); pager = (TouchViewPager)findViewById(R.id.pager); pager.setAdapter(adapter); TabPageIndicator indicator = (TabPageIndicator)findViewById(R.id.indicator); indicator.setViewPager(pager); onTouch(); } class GoogleMusicAdapter extends FragmentPagerAdapter { public GoogleMusicAdapter(FragmentManager fm) { super(fm); } @Override public Fragment getItem(int position) { if("美图".equals(CONTENT[position])){ return GridContentActivity.newInstance(CONTENT[position]); }else{ return ContentActivity.newInstance(CONTENT[position]); } } @Override public CharSequence getPageTitle(int position) { return CONTENT[position % CONTENT.length]; } @Override public int getCount() { return CONTENT.length; } } public void onTouch() { touchSlop = ViewConfiguration.get(ViewPagerListViewActivity.this).getScaledTouchSlop(); pager.setOnTouchListener(new OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { switch(event.getAction()) { case MotionEvent.ACTION_UP: float downX = pager.getDownX(); float lastX = event.getX(); float disX = Math.abs(lastX-downX); if(touchSlop<disX && lastX >downX && pager.getCurrentItem()==0 ) { Toast.makeText(ViewPagerListViewActivity.this, "左滑关闭", 3).show(); }else if(touchSlop<disX && lastX <downX && pager.getCurrentItem()==adapter.getCount()-1){ Toast.makeText(ViewPagerListViewActivity.this, "右滑动进入评论", 3).show(); } break; } return false; } }); } } package net.xinhua.activity; import java.util.ArrayList; import java.util.List; import net.xinhuamm.adapter.NewsIndexAdapter; import net.xinhuamm.entity.NewsListEntity; import net.xinhuamm.units.Constants; import net.xinhuamm.widget.TotiPotentListView; import net.xinhuamm.widget.TotiPotentListView.ICommViewListener; import net.xinhuamm.widget.LoadMoreListView; import android.os.Bundle; import android.support.v4.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; /** * @类名:ContentActivity * @描述:TODO(新闻内容页面,异步加载数据,下拉刷新,上拉加载更多) * @作者:zhaohao * @时间 2013-7-1 下午3:43:52 */ public class ContentActivity extends Fragment implements ICommViewListener { View mView=null; //全能ListView 支持下拉刷新数据和上拉加载更多 TotiPotentListView loadDataView=null; NewsIndexAdapter newsIndexAdapter=null; LoadMoreListView loadMoreListView=null; String defaultTitle=""; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); } public static ContentActivity newInstance(String title) { ContentActivity fragment = new ContentActivity(title); return fragment; } public ContentActivity(String defaultTitle) { this.defaultTitle=defaultTitle; } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { mView=inflater.inflate(R.layout.content_layout, null); return mView; } @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); loadDataView=(TotiPotentListView) mView.findViewById(R.id.loaddataview); loadDataView.setCommViewListener(this); loadMoreListView=loadDataView.getLoadMoreListView(); loadDataView.setListViewDriver(0); newsIndexAdapter=new NewsIndexAdapter(getActivity()); loadMoreListView.setAdapter(newsIndexAdapter); loadDataView.initData(); } @Override public List<Object> doInBackGround(int CurrentPage) { try { Thread.sleep(50); } catch (InterruptedException e) { e.printStackTrace(); } return objects(CurrentPage); } @Override public void callBackListData(List<Object> list) { newsIndexAdapter.setList(list, true); } @Override public void onHeadRefresh() { newsIndexAdapter.clear(); } public List<Object> objects(int currentpage){ ArrayList<Object> arrayList=new ArrayList<Object>(); for (int i = 0; i <20; i++) { NewsListEntity newsListEntity=new NewsListEntity(); newsListEntity.setNEWS_COMMENT_COUNT((i+1)+""); newsListEntity.setNEWS_TITLE(defaultTitle+i); newsListEntity.setSERVER_DOMAIN(Constants.IMAGES[i]); newsListEntity.setNEWS_MEMO(defaultTitle); arrayList.add(newsListEntity); } return arrayList;

2014-12-23

html网页取色工具htmlcol.zip

可以取到网页上颜色编码值

2013-05-27

EJB3.0 实例教程

EJB3.0 实例教程

2013-05-27

XFire1.2.6

基于webservice的开发,XFire需要的jar文件。

2013-05-27

host editor

可以动态导入host文件,有利于在开发web项目时频繁的更改host文件的地址。

2013-05-27

ADT-0.9.8.zip

开发android必须使用的工具,先需要安装adt,再才可以安装android sdk

2013-01-28

(Android中文API.chm

是一个中文版的android开发手册,阅读起来比较容易。

2013-01-28

birt 报表资料珍藏版

用于报表的开发,在java web中经常使用

2013-01-28

方立勋JavaWeb视频前十一天ppt版本

方立勋JavaWeb视频前十一天ppt版本 方立勋JavaWeb视频前十一天ppt版本

2012-03-11

方立勋JavaWeb视频十到十一天

方立勋JavaWeb视频十到十一天 方立勋JavaWeb视频十到十一天

2012-03-11

JPA技术开发

JPA技术开发ppt

2012-03-05

EJB3.0企业开发 黎活明

EJB3.0企业开发 黎活明

2012-03-05

Struts高级实战进阶-张孝祥.ppt

Struts高级实战进阶-张孝祥 Struts高级实战进阶-张孝祥

2012-03-05

Java Struts教程.

Java Struts教程

2012-03-05

mysql-src-5.1.17.jar

mysql-src-5.1.17 源代码,对于理解mysql的一些类是很有必要的。

2012-03-05

struts-1.3.8源代码

struts-1.3.8源代码,看源代码对理解struts原理是很有帮助的。

2012-03-05

struts2_入门指南.chm

struts2里面涵盖了几乎所有的struts2标签,可以迅速查询标签的用法。

2012-03-05

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除