- 浏览: 228964 次
- 性别:
- 来自: 广州
最新评论
-
Janne:
你好 有源代码?可以发到我的邮箱里学学吗?2731049993 ...
achartengine画出动态折线图的效果 -
anbo724:
我的邮箱 anbo724@gmail.com谢谢@
achartengine画出动态折线图的效果 -
anbo724:
你好 请问有源码没《?谢谢
achartengine画出动态折线图的效果 -
weiday123:
额,觉得这个会不会占堆内存?
AdapterView、Adapter优化 -
wen742538485:
为什么没有呢?权限没加还是发创建了给你删了再想创建?是不允许重 ...
Android中为你的应用程序添加桌面快捷方式
001
package com.test.util;
002
003
import com.dooya.activity.R;
004
005
import android.content.Context;
006
import android.graphics.Bitmap;
007
import android.graphics.BitmapFactory;
008
import android.graphics.Canvas;
009
import android.graphics.LinearGradient;
010
import android.graphics.Matrix;
011
import android.graphics.Paint;
012
import android.graphics.PorterDuffXfermode;
013
import android.graphics.Bitmap.Config;
014
import android.graphics.PorterDuff.Mode;
015
import android.graphics.Shader.TileMode;
016
import android.graphics.drawable.BitmapDrawable;
017
import android.view.View;
018
import android.view.ViewGroup;
019
import android.widget.BaseAdapter;
020
import android.widget.ImageView;
021
022
public class ImageAdapter extends BaseAdapter {
023
int mGalleryItemBackground;
024
private Context mContext;
025
//加载资源图片
026
private Integer[] mImageIds = {
027
R.drawable.favorite,
028
R.drawable.room,
029
R.drawable.scene,
030
R.drawable.security,
031
R.drawable.time,
032
R.drawable.set};
033
034
public ImageAdapter(Context c) {
035
mContext = c;
036
}
037
038
public int getCount() {
039
return mImageIds.length;
040
}
041
042
public Object getItem(int position) {
043
return position;
044
}
045
046
public long getItemId(int position) {
047
return position;
048
}
049
050
public View getView(int position, View convertView, ViewGroup parent) {
051
052
ImageView i = createReflectedImages(mContext,mImageIds[position]);
053
054
i.setLayoutParams(new CoverFlow.LayoutParams(120, 100));
055
i.setScaleType(ImageView.ScaleType.CENTER_INSIDE);
056
057
// 设置的抗锯齿
058
BitmapDrawable drawable = (BitmapDrawable) i.getDrawable();
059
drawable.setAntiAlias(true);
060
return i;
061
}
062
063
public float getScale(boolean focused, int offset) {
064
return Math.max(0, 1.0f / (float) Math.pow(2, Math.abs(offset)));
065
}
066
067
/**
068
* 设置镜像图像
069
* @param mContext
070
* @param imageId
071
* <a href="http://my.oschina.net/u/556800" rel="nofollow" target="_blank">@return</a>
072
*/
073
public ImageView createReflectedImages(Context mContext,int imageId) {
074
075
Bitmap originalImage = BitmapFactory.decodeResource(mContext.getResources(), imageId);
076
077
final int reflectionGap = 4;
078
079
int width = originalImage.getWidth();
080
int height = originalImage.getHeight();
081
082
Matrix matrix = new Matrix();
083
matrix.preScale(1, -1);
084
085
Bitmap reflectionImage = Bitmap.createBitmap(originalImage, 0,
086
height / 2, width, height / 2, matrix, false);
087
088
Bitmap bitmapWithReflection = Bitmap.createBitmap(width,
089
(height + height / 2), Config.ARGB_8888);
090
091
Canvas canvas = new Canvas(bitmapWithReflection);
092
093
canvas.drawBitmap(originalImage, 0, 0, null);
094
095
Paint deafaultPaint = new Paint();
096
canvas.drawRect(0, height, width, height + reflectionGap, deafaultPaint);
097
098
canvas.drawBitmap(reflectionImage, 0, height + reflectionGap, null);
099
100
Paint paint = new Paint();
101
LinearGradient shader = new LinearGradient(0, originalImage
102
.getHeight(), 0, bitmapWithReflection.getHeight()
103
+ reflectionGap, 0x70ffffff, 0x00ffffff, TileMode.MIRROR);
104
105
paint.setShader(shader);
106
107
paint.setXfermode(new PorterDuffXfermode(Mode.DST_IN));
108
109
canvas.drawRect(0, height, width, bitmapWithReflection.getHeight()
110
+ reflectionGap, paint);
111
112
ImageView imageView = new ImageView(mContext);
113
imageView.setImageBitmap(bitmapWithReflection);
114
115
return imageView;
116
}
117
118
}
001
package com.test.util;
002
003
import android.content.Context;
004
import android.graphics.Camera;
005
import android.graphics.Matrix;
006
import android.util.AttributeSet;
007
import android.view.View;
008
import android.view.animation.Transformation;
009
import android.widget.Gallery;
010
import android.widget.ImageView;
011
012
public class CoverFlow extends Gallery {
013
014
private Camera mCamera = new Camera();
015
private int mMaxRotationAngle = 50;//60;
016
private int mMaxZoom = -380;//-120;
017
private int mCoveflowCenter;
018
private boolean mAlphaMode = true;
019
private boolean mCircleMode = false;
020
021
public CoverFlow(Context context) {
022
super(context);
023
this.setStaticTransformationsEnabled(true);
024
}
025
026
public CoverFlow(Context context, AttributeSet attrs) {
027
super(context, attrs);
028
this.setStaticTransformationsEnabled(true);
029
}
030
031
public CoverFlow(Context context, AttributeSet attrs, int defStyle) {
032
super(context, attrs, defStyle);
033
this.setStaticTransformationsEnabled(true);
034
}
035
036
public int getMaxRotationAngle() {
037
return mMaxRotationAngle;
038
}
039
040
public void setMaxRotationAngle(int maxRotationAngle) {
041
mMaxRotationAngle = maxRotationAngle;
042
}
043
044
public boolean getCircleMode() {
045
return mCircleMode;
046
}
047
048
public void setCircleMode(boolean isCircle) {
049
mCircleMode = isCircle;
050
}
051
052
public boolean getAlphaMode() {
053
return mAlphaMode;
054
}
055
056
public void setAlphaMode(boolean isAlpha) {
057
mAlphaMode = isAlpha;
058
}
059
060
public int getMaxZoom() {
061
return mMaxZoom;
062
}
063
064
public void setMaxZoom(int maxZoom) {
065
mMaxZoom = maxZoom;
066
}
067
068
private int getCenterOfCoverflow() {
069
return (getWidth() - getPaddingLeft() - getPaddingRight()) / 2
070
+ getPaddingLeft();
071
}
072
073
private static int getCenterOfView(View view) {
074
return view.getLeft() + view.getWidth() / 2;
075
}
076
077
protected boolean getChildStaticTransformation(View child, Transformation t) {
078
final int childCenter = getCenterOfView(child);
079
final int childWidth = child.getWidth();
080
int rotationAngle = 0;
081
t.clear();
082
t.setTransformationType(Transformation.TYPE_MATRIX);
083
if (childCenter == mCoveflowCenter) {
084
transformImageBitmap((ImageView) child, t, 0);
085
} else {
086
rotationAngle = (int) (((float) (mCoveflowCenter - childCenter) / childWidth) * mMaxRotationAngle);
087
if (Math.abs(rotationAngle) > mMaxRotationAngle) {
088
rotationAngle = (rotationAngle < 0) ? -mMaxRotationAngle
089
: mMaxRotationAngle;
090
}
091
transformImageBitmap((ImageView) child, t, rotationAngle);
092
}
093
return true;
094
}
095
096
/**
097
*
098
*/
099
protected void onSizeChanged(int w, int h, int oldw, int oldh) {
100
mCoveflowCenter = getCenterOfCoverflow();
101
super.onSizeChanged(w, h, oldw, oldh);
102
}
103
104
/**
105
* 把图像位图的角度通过
106
*/
107
private void transformImageBitmap(ImageView child, Transformation t,
108
int rotationAngle) {
109
mCamera.save();
110
final Matrix imageMatrix = t.getMatrix();
111
final int imageHeight = child.getLayoutParams().height;
112
final int imageWidth = child.getLayoutParams().width;
113
final int rotation = Math.abs(rotationAngle);
114
mCamera.translate(0.0f, 0.0f, 100.0f);
115
116
// 如视图的角度更少,放大
117
if (rotation <= mMaxRotationAngle) {
118
float zoomAmount = (float) (mMaxZoom + (rotation * 1.5));
119
mCamera.translate(0.0f, 0.0f, zoomAmount);
120
if (mCircleMode) {
121
if (rotation < 40)
122
mCamera.translate(0.0f, 155, 0.0f);
123
else
124
mCamera.translate(0.0f, (255 - rotation * 2.5f), 0.0f);
125
}
126
if (mAlphaMode) {
127
((ImageView) (child)).setAlpha((int) (255 - rotation * 2.5));
128
}
129
}
130
mCamera.rotateY(rotationAngle);
131
mCamera.getMatrix(imageMatrix);
132
imageMatrix.preTranslate(-(imageWidth / 2), -(imageHeight / 2));
133
imageMatrix.postTranslate((imageWidth / 2), (imageHeight / 2));
134
mCamera.restore();
135
}
136
}
01
package com.test.activity;
02
03
import android.app.Activity;
04
05
import android.os.Bundle;
06
07
import android.view.WindowManager;
08
09
import com.dooya.util.CoverFlow;
10
11
import com.dooya.util.ImageAdapter;
12
13
14
15
public class HomeActivity extends Activity {
16
17
public void onCreate(Bundle savedInstanceState) {
18
19
super.onCreate(savedInstanceState);
20
21
CoverFlow cf = new CoverFlow(this);
22
23
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
24
25
WindowManager.LayoutParams.FLAG_FULLSCREEN);// 设置全屏
26
27
cf.setBackgroundDrawable(this.getResources().getDrawable(R.drawable.bg));//背景
28
29
cf.setAdapter(new ImageAdapter(this));
30
31
ImageAdapter imageAdapter = new ImageAdapter(this);
32
33
cf.setAdapter(imageAdapter);
34
35
cf.setSelection(2, true);
36
37
cf.setAnimationDuration(1000);
38
39
setContentView(cf);
40
41
}
42
43
}
发表评论
-
Android Tween动画之RotateAnimation实现图片不停旋转
2012-11-26 22:38 1040本文主要介绍Android中如何使用rotate实现图片不停旋 ... -
Android实现widget定时更新
2012-11-04 20:20 883在开发Android的widget时,第一个需要解决的问题就是 ... -
来自腾讯、谷歌、百度等名企的精选面试五十题
2012-10-07 23:08 904http://www.apkway.com/thread-90 ... -
Android 中Parcelable的作用
2012-09-24 09:53 839android提供了一种新的类型:Parcel。本类被用作封装 ... -
[Android算法] 【eoeAndroid索引】史上最牛最全android开发知识汇总
2012-09-13 09:33 1095http://www.eoeandroid.com/threa ... -
安卓航班推荐70个具有商业实战性的精品Android源码
2012-08-01 00:00 916http://www.apkway.com/thread-58 ... -
Android测试教程汇总
2012-08-02 14:51 1064http://www.apkway.com/thread-67 ... -
Service 与 Thread 的区别
2012-07-26 00:10 880Service 与 Thread 的区别 很多时候,你可能 ... -
android 使用百度地图画轨迹
2012-07-26 00:08 2585import android.content.Context ... -
android百度地图半径画圆
2012-07-26 00:07 2707Java代码 import android.content ... -
Android下获取开机时间
2012-07-26 00:05 1300我的思路是:程序里注册个广播接收器,接收开机启动的广播,当程序 ... -
android 高仿【优酷】圆盘旋转菜单 的实现
2012-07-26 00:03 1336MyAnimation.java Java代码 pack ... -
android 3D 转盘效果(附源码)
2012-07-25 23:41 1781一个仿3D的转盘效果,有倒影特效,旋转图标还可自动放大缩小。由 ... -
Android Thread
2012-07-23 10:47 1014创建新线程的常用方式: 1. 直接使用Thread创建 ... -
Android 通过手说tts中文语音包实现中文朗读
2012-07-22 17:09 1776Android 通过手说tts中文语音包实现中文朗读 ... -
Android 使用HTTPClient调用Web请求(查询手机号码区域)
2012-07-21 00:33 1201Android通过Apache HttpClient调用网上提 ... -
Android+struts2+JSON方式的手机开发
2012-07-21 00:14 1139http://topmanopensource.iteye.c ... -
android九宫格实现
2012-07-21 00:03 940android九宫格实现,开始以为很复杂,其实只要知道了如何布 ... -
Android ListView圆角实现
2012-07-20 23:59 1181在android上开发项目,如 ... -
Android 将一个Activity转化为View显示出来
2012-07-19 10:27 2067最近看到好多opengl牛人写了些立方体,卷页之类的华丽的代码 ...
相关推荐
新版Android开发教程及笔记-完整版 《Android中文教程》中文版 《android基础教程合集》 Android实例教程 会员贡献索引贴 实用Android开发工具和资源精选 APK权限大全 - Android必懂知识 最无私的Android资料...
1.3 Android开发环境的搭建 1.4 第一个Android程序——HelloAndroid 1.5 Android应用程序的调试 1.6 Android应用程序的项目结构 1.7 Android的系统架构 1.8 本章小结 第2章 Android简单控件的开发及应用 第3章 ...
1.3 Android开发环境的搭建 1.4 第一个Android程序——HelloAndroid 1.5 Android应用程序的调试 1.6 Android应用程序的项目结构 1.7 Android的系统架构 1.8 本章小结 第2章 Android简单控件的开发及应用 第3章 ...
《android编程典型实例与项目开发 含cd光盘1张 》主要以android平台下应用软件开发的基础知识为主题 并结合真实的案例为读者详细介绍android平台下的商务软件 3d游戏程序及2d游戏程序的开发流程 《android编程典型...
项目名称:Android_炫酷的3D音乐播放器_各种特效OpenGL 内容概要: 本项目是一个专为Android平台设计的3D音乐播放器,它利用OpenGL技术实现了丰富的视觉效果和动画特效。播放器不仅支持标准的音乐文件格式,还提供了...
本项目旨在开发一个集合了多种页面特效的Android应用,为用户提供丰富多彩的界面交互体验。通过集成多种动画效果和过渡方式,该应用能够展示Android平台在界面设计上的强大功能和创新性。 在功能实现上,项目首先...
1.3 Android开发环境的搭建 1.4 第一个Android程序——HelloAndroid 1.5 Android应用程序的调试 1.6 Android应用程序的项目结构 1.7 Android的系统架构 1.8 本章小结 第2章 Android简单控件的开发及应用 第3章 ...
**Android项目:炫酷3D音乐播放器(含OpenGL特效)** 本项目是一个独具特色的Android音乐播放器应用,它结合了先进的3D技术和OpenGL特效,为用户带来前所未有的视听盛宴。播放器界面美观大方,充满科技感,不仅支持...
简明、完整、全面的安卓开发demo集合,包含如下示例 1、LinearLayout Button、RadioGroup、 CheckBox 2、TableLayout 3、FrameLayout 霓虹灯效果 4、RelativeLayout 梅花效果 5、自定义view跟着触点走的小球 6、 ...
本书通过200个经典实例全面、系统地...本书内容由浅入深,从Android平台下开发应用软件的基础知识到开发大型商务软件、3D游戏以及2D游戏,开发思路清晰明了、语言简明扼要,非常适合初学者和Android开发人员阅读参考
jQuery+css3实现的可爱的3D动画展示效果,界面上的卡通小动物非常可爱,点击有3D效果的文字出现,整体流畅、精美。 建议开发童鞋使用统一开发环境UDE来进行查看、调试、开发~~~统一开发环境是一款HTML5跨平台一站式...
Android编程经典200例通过200个经典...本书内容由浅入深,从Android平台下开发应用软件的基础知识到开发大型商务软件、3D游戏以及2D游戏,开发思路清晰明了、语言简明扼要,非常适合初学者和Android开发人员阅读参考。
例如,我们使用了Android Studio作为开发工具,它提供了一系列的功能和工具,如代码编辑器、调试器和模拟器,使得开发人员可以快速开发和测试安卓应用。我们还使用了Java作为主要的编程语言,它是安卓应用开发的主流...
本书通过200个经典实例全面、系统地介绍了Android平台下的软件开发... 手机网络应用、手机的Google服务功能、手机多媒体服务功能、Android手机的3D世界、手机特效开发、 休闲游戏--Q版疯狂大炮、娱乐游戏--3D迷宫。
1 3 1 搭建Android开发环境 1 3 2 Android开发环境的使用 第2章 布局 2 1 Android中的布局 2 2 布局使用技巧 2 2 1 FrameLayout布局 2 2 2 LinearLayout布局 2 2 3 RelativeLayout布局 2 2 4 TableLayout布局 2 2 5 ...
手机网络应用、手机的Goog l e 服务功能、手机多媒体服务功能、An droid 手机的3D 世界、手机特效开发、 休闲游戏Q 版疯狂大炮、娱乐游戏3D 迷宫。 本书内容由浅入深,从An droid 平台下开发应用软件的基础知识到...
1.2 搭建Android开发环境 5 1.2.1 下载和安装Android SDK 5 1.2.2 安装Eclipse和ADT插件 7 1.3 Android常用开发工具的用法 10 1.3.1 创建、删除和浏览AVD 10 1.3.2 使用Android模拟器 (Emulator) 14...
在android应用程序的开发过程中,相信我们很多人都想把应用的交互做的比较绚丽,比如让界面切换平滑的滚动,还有热度灰常高的伪3D等界面效果,通常情况下,系统提供的应用在特效这方面只能为我们提供简单的动画接口...