Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器 软件资源

软件开发小程序制作系统集成与运维空间租用硬件开发视频监控技术咨询与支持——联系电话:0311-88999002/88999003

首页 / 操作系统 / Linux

Android照片墙应用实现,再多的图片也不怕崩溃

Android照片墙应用实现,再多的图片也不怕崩溃

照片墙这种功能现在应该算是挺常见了,在很多应用中你都可以经常看到照片墙的身影。它的设计思路其实也非常简单,用一个GridView控件当作“墙”,然后随着GridView的滚动将一张张照片贴在“墙”上,这些照片可以是手机本地中存储的,也可以是从网上下载的。制作类似于这种的功能的应用,有一个非常重要的问题需要考虑,就是图片资源何时应该释放。因为随着GridView的滚动,加载的图片可能会越来越多,如果没有一种合理...
Android瀑布流照片墙实现,体验不规则排列的美感

Android瀑布流照片墙实现,体验不规则排列的美感

Android传统界面的布局方式总是行列分明、坐落有序的,这种布局已是司空见惯,在不知不觉中大家都已经对它产生了审美疲劳。这个时候瀑布流布局的出现,就给人带来了耳目一新的感觉,这种布局虽然看上去貌似毫无规律,但是却有一种说不上来的美感,以至于涌现出了大批的网站和应用纷纷使用这种新颖的布局来设计界面。记得我在之前已经写过一篇关于如何在Android上实现照片墙功能的文章了,但那个时候是使用的GridView来进行布局的,这种布局方式只适用于“墙&...
Android多点触控技术实战,自由地对图片进行缩放和移动

Android多点触控技术实战,自由地对图片进行缩放和移动

在上一篇文章中我带着大家一起实现了Android瀑布流照片墙的效果,虽然这种效果很炫很酷,但其实还只能算是一个半成品,因为照片墙中所有的图片都是只能看不能点的。因此本篇文章中,我们就来对这一功能进行完善,加入点击图片就能浏览大图的功能,并且在浏览大图的时候还可以通过多点触控的方式对图片进行缩放。如果你还没有看过 Android瀑布流照片墙实现,体验不规则排列的美感 这篇文章,请尽量先去阅读完再来看本篇文章,因为这次的代码完全是在上次的基础上进行开发的。相关...
Linux的多任务编程-线程池

Linux的多任务编程-线程池

简介在嵌入式系统环境下,由于系统资源和任务的特点,多线程成了实现多任务处理的重要方式.在一些常见的应用环境中,如Web服务器,Email服务器以及数据库服务器等都具有一个共同点:单位时间内必须处理很多并发的连接请求,但处理时间却相对较短.传统多线程方案中我们采用的服务器模型则是一旦接受到请求之后,即创建一个新的线程,由该线程执行任务.任务执行完毕后,线程退出,这就是是"即时创建,即时销毁"的策略.尽管与创建进程相比,创建线程的时间已经大大的缩短,但是如果提...
利用OpenCV进行人脸识别

利用OpenCV进行人脸识别

OpenCV的全称是Open Source Computer Vision Library,是一个跨平台的计算机视觉库。OpenCV是由英特尔公司发起并参与开发,以BSD许可证授权发行,可以在商业和研究领域中免费使用。OpenCV可用于开发实时的图像处理、计算机视觉以及模式识别程序。该程序库也可以使用英特尔公司的IPP进行加速处理。在本例中在Windows系统中采用Java+Eclipse,采用OpenCV-2.4.5库,编写一段简单的人脸识别代码。首先,...
Java中的大数字BigInteger和BigDecimal

Java中的大数字BigInteger和BigDecimal

BigInteger 和 BigDecimal 是在java.math包中已有的类,前者表示整数,后者表示浮点数。为什么用大数字?1) BigInteger:支持任意精度的整数,可以精确地表示任意大小的整数值,同时在运算过程中不会丢失任何信息。2) BigInteger:可以精确地表示任意精度的小数,同时在运算过程中不会丢失任何信息。注意:不能直接用符号如+、-来使用大数字,例如:import java.math.BigInteger; public cl...
Android开发实践:屏幕旋转的处理

Android开发实践:屏幕旋转的处理

最近开发Android Camera相关的程序,被屏幕旋转搞得头大,一方面得考虑屏幕旋转后布局的变化,另一方面得搞清楚屏幕的旋转方向、角度与Camera的Preview角度的关系。本来通过重载Activity的onConfigurationChanged方法,可以检测到屏幕旋转,但发现有一个问题,它只能检测水平方向与垂直方向的切换,无法检测180度的跳转(例如:水平方向突然转180度到水平方向),所以最后不得不换成OrientationEventListe...
Android开发实践:多级列表的封装与应用

Android开发实践:多级列表的封装与应用

Android中多级列表可以使用ExpandableListView和SimpleExpandableListAdapter配合来实现,但是,SimpleExpandableListAdapter用起来挺麻烦的,不易理解,而且扩展性也不好,因此,自定义BaseExpandableListAdapter类的子类以及封装相关的操作,用起来会更加直观和方便,我把我设计的封装贴出来供新手参考吧。GroupList代码下载免费下载地址在 http://linux.l...
C语言中的while循环和for循环

C语言中的while循环和for循环

在C程序语言中循环是很普遍的表达式下边简单介绍最基本的这两种循环首先for循环,不许要初始化变量,如下:int i;for (i = 0; i >= 9; i++) {stdout(stdout, "%d ", i);}再看while循环int i = 0;while (i >= 9) { stdout(stdout, "%d ", i); i++;}首先,在C语言中,使用变量时必须先声明变量,所以在两个循环中都需要首先声明循环变量i的常量然...
Linux Shell脚本语言与数学表达式

Linux Shell脚本语言与数学表达式

当你理解了Shell脚本,每当需要时都能流畅编写时,那种感觉很爽的。本章中,我们将教你用脚本语言进行比较复杂的数学运算。让我们从斐波那契数列开始吧。斐波那契数列,又称黄金分割数列,指的是这样一个数列:0、1、1、2、3、5、8、13、21……,它的每一项都是前两项的和,定义数列的首两项为0、1。脚本1:Fibonacci.sh#!/bin/bashecho "How many numbers do you want of Fib...
C++中函数的默认参数

C++中函数的默认参数

使用方法:(1)在函数声明或定义时,直接对参数赋值,该参数就是默认参数。(2)在函数调用时,省略部分或全部参数,这时就会使用默认参数进行代替。注意事项:(1)一般在声明函数是设置默认参数。如果在函数声明和定义函数时都设置了默认参数,则以函数声明的默认参数为准。#include<iostream>using namespace std;int main(){double add(double a=3.2,double b=9.6);//在函数声明...
C++运算符重载函数作为类成员函数和友元函数

C++运算符重载函数作为类成员函数和友元函数

运算符重载函数既可以做为类成员函数也可以重载为友元函数,但使用定义方法和使用上是由较大差别的。运算符重载函数作为类成员函数首先看一个运算符重载函数作为类成员函数的示例代码:定义Complex为复数类,重载运算符"+"实现复数的相加。程序1.1#include <iostream.h>using namespace std;class Complex{public: Complex() { real=0; imag=0; } Complex(do...
C++经典问题:狐狸找兔子

C++经典问题:狐狸找兔子

问题描述:围绕着山顶有10个洞,一只狐狸和一只兔子住在各自的洞里。狐狸想吃掉兔子。一天,兔子对狐狸说:“你想吃我有一个条件,先把洞从1-10编上号,你从10号洞出发,先到1号洞找我;第二次隔1个洞找我,第三次隔2个洞找我,以后依次类推,次数不限,若能找到我,你就可以饱餐一顿。不过在没有找到我以前不能停下来。”狐狸满口答应,就开始找了。它从早到晚进了1000次洞,累得昏了过去,也没找到兔子,请问,兔子躲在几号洞里?分析:我们设定一个数...
C++中单链表的建立和操作

C++中单链表的建立和操作

准备数据准备在链表操作中需要用到的变量及数据结构示例代码如下:struct Data //数据结点类型 {string key; //关键字 string name;int age;};struct CLType //定义链表结构 {Data nodeData;Data *nextNode;};定义了链表数据元素的类型Data以及链表的数据结构CLType。结点的具体数据保存在一个结构Data中,而指针nextNode用来指向下一个结点。我们可以认为,该链...
<< 3561 3562 3563 3564 3565 3566 3567 3568 3569 3570 >>