androideffect
‘壹’ 怎样用android实现iphone的suckEffect 收缩效果,如一块布被抽走
一
‘贰’ 有没有用过android sdk里面的AudioEffect设置音效的
在Android2.3中增加了对音频混响的支持,这些API包含在android.media.audiofx包中。
一、概述
AudioEffect是android audio framework(android 音频框架)提供的音频效果控制的基类。开发者不能直接使用此类,应该使用它的派生类。下面列出它的派生类。
Equalizer
Virtualizer
BassBoost
PresetReverb
EnvironmentalReverb
当创建AudioEffect时,如果音频效果应用到一个具体的AudioTrack和MediaPlayer的实例,应用程序必须指定该实例的音频session ID,如果要应用Global音频输出混响的效果必须制定Session 0。
要创建音频输出混响(音频 Session 0)要求要有 MODIFY_AUDIO_SETTINGS权限。
如果要创建的效果在audio framework不存在,那么直接创建该效果,如果已经存在那么直接使用此效果。如果优先级高的对象要在低级别的对象使用该效果时,那么控制将转移到优先级高的对象上,否则继续停留在此对象上。在这种情况下,新的申请将被监听器通知。
‘叁’ Android如何纯java代码实现字体阴影效果
Android实现纯java代码字体阴影效果,主要是通过activity的draw方法,进行重新绘制,如下代码:
packagecanvas.test;
importandroid.app.Activity;
importandroid.os.Bundle;
importandroid.content.Context;
importandroid.graphics.Bitmap;
importandroid.graphics.BitmapFactory;
importandroid.graphics.Canvas;
importandroid.graphics.Color;
importandroid.graphics.Paint;
importandroid.graphics.PorterDuff;
importandroid.graphics.PorterDuff.Mode;
importandroid.graphics.PorterDuffXfermode;
importandroid.graphics.Rect;
importandroid.graphics.RectF;
importandroid.graphics.drawable.Drawable;
importandroid.view.View;
{
@Override
publicvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(newImageEffect(this));
}
classImageEffectextendsView{
Paintpaint;
publicImageEffect(Contextcontext){
super(context);
paint=newPaint();//初始化画笔,为后面阴影效果使用。
paint.setAntiAlias(true);//去除锯齿。
paint.setShadowLayer(5f,5.0f,5.0f,Color.BLACK);//设置阴影层,这是关键。
paint.setXfermode(newPorterDuffXfermode(Mode.SRC_IN));
}
@Override
publicvoidonDraw(Canvascanvas){
super.onDraw(canvas);
intposX=20;
intposY=50;
intPicWidth,PicHegiht;
Drawabledrawable=getResources().getDrawable(R.drawable.button);
Drawabledbe=getResources().getDrawable(R.drawable.button).mutate();//如果不调用mutate方法,则原图也会被改变,因为调用的资源是同一个,所有对象是共享状态的。
DrawabledrawTest=getResources().getDrawable(R.drawable.button);
Bitmapbmp=BitmapFactory.decodeResource(getResources(),R.drawable.button);
PicWidth=drawable.getIntrinsicWidth();
PicHegiht=drawable.getIntrinsicHeight();
drawTest.setBounds(posX,(2*posY)+PicHegiht,posX+PicWidth,(2*posY)+2*PicHegiht);
drawable.setBounds(posX,posY,posX+PicWidth,posY+PicHegiht);
dbe.setBounds(0,0,PicWidth,PicHegiht);
canvas.drawColor(Color.WHITE);//设置画布颜色
canvas.save(Canvas.MATRIX_SAVE_FLAG);
dbe.setColorFilter(0x7f000000,PorterDuff.Mode.SRC_IN);
canvas.translate(posX+(int)(0.9*PicWidth/2),posY+PicHegiht/2);//图像平移为了刚好在原图后形成影子效果。
canvas.skew(-0.9F,0.0F);//图像倾斜效果。
canvas.scale(1.0f,0.5f);//图像(其实是画布)缩放,Y方向缩小为1/2。
dbe.draw(canvas);//此处为画原图像影子效果图,比原图先画,则会在下层。
drawable.clearColorFilter();
canvas.restore();
canvas.save(Canvas.MATRIX_SAVE_FLAG);
drawable.draw(canvas);//此处为画原图像,由于canvas有层次效果,因此会盖在影子之上。
canvas.restore();
//默认无效果原图
canvas.save(Canvas.MATRIX_SAVE_FLAG);
drawTest.draw(canvas);
canvas.restore();
//图片阴影效果
canvas.save(Canvas.MATRIX_SAVE_FLAG);
//Rectrect=newRect(2*posX+PicWidth,2*posY+PicHegiht,2*posX+2*PicWidth,2*posY+2*PicHegiht);//此为理论上的阴影图坐标
Rectrect=newRect(2*posX+PicWidth+3,2*posY+PicHegiht+3,2*posX+2*PicWidth-2,2*posY+2*PicHegiht-2);
//由于图片的实际尺寸比显示出来的图像要大一些,因此需要适当更改下大小,以达到较好的效果
RectFrectF=newRectF(rect);
canvas.drawRoundRect(rectF,10f,10f,paint);//在原有矩形基础上,画成圆角矩形,同时带有阴影层。
canvas.drawBitmap(bmp,2*posX+PicWidth,2*posY+PicHegiht,null);//画上原图。
canvas.restore();
}
}
}
‘肆’ 关于android
更方便快捷的联系人操作
支持多个 Google 帐户
添加短信内容搜索功能
邮件整合界面
照相模式的更新
联系人和帐户
多个帐户的支持,支持同步多个不同的帐户同步联系人及邮件,同时支持 Exchange帐户.
开发者可以创建一个同步适配器,添加输入建立同步数据源.
快速的联系人相关操作,可以基于一个联系人相关的数据来做相关的事件.例如: 一个用户可以选择一个联系人图片来给联系人打电话,发送信息或者邮件等. 同时,其他的应用程序想邮件程序,信息程序,和日历等都可以添加这个快速联系人操作 Widget 来支持这个功能.
邮件
支持 Exchange 帐户.
整合邮件可以在同一个页面浏览邮件和帐户.
信息
可以搜索手机上保存的短信和彩信内容.
设置自动删除旧的信息.
摄像
Built-in flash support
Digital zoom
Scene mode
White balance
Color effect
Macro focus
Android 虚拟键盘
改进的键盘布局(keyboard layout)更方便快捷的输入,更快的输入速度.
虚拟键盘支持多点触摸.
输入字符时可以根据输入的内容列出建议的联系人名字.
网络浏览器
Refreshed UI with actionable browser URL bar enables users to directly
tap the address bar for instant searches and navigation.
书签支持站点缩略图(web page thumbnails).
支持两次按键(双击)放大页面.
支持 HTML5:
支持数据 API .
支持应用程序缓存( cache),方便操作支持离线客户端的程序.
Geolocation API support, to provide location information about the device.
<video> tag support in fullscreen mode.
日历
Agenda view provides infinite scrolling.
Events indicate the attending status for each invitee.
Invite new guests to events.
新的硬件更新多媒体硬件支持更新
更新的硬件更好的支持多媒体.
蓝牙
Bluetooth 2.1
新的蓝牙配置: Object Push Profile (OPP) and Phone Book Access Profile (PBAP)
新的Framework APIs
‘伍’ 如何高效学习Android动画
自己整个学习过程中的产出的文章动画系列 - 传统View动画与Property动画基础及比较 动画系列 - PropertyAnim 详解动画系列 - PropertyAnim 实际应用动画系列 - ViewPager动画 Android 动画基础 (由于 @Trinea 发起的codeKK 项目下的开源项目原理分析项目android-cn/android-open-project-analysis · GitHub 二期中,很多分析项目涉及到了动画,所以该篇主要是对PropertyAnim详解和基础篇中的一些知识进行整理,作为二期的动画公共知识,codeKK 绝对是超级棒的项目,大家可以多关注)从传统View动画与Property动画基础及比较 以及Android 动画基础 这两篇文章,你可以对android动画总体有些了解,PropertyAnim 详解这一篇则是专门介绍了3.0出现的属性动画,其中也涉及到了JakeWharton大神为3.0之前实现的兼容库NineOldAndroids。 通过ViewPager来实现动画效果的方式越来越多,一些视差效果也确实很赞,比如雅虎天气的视差效果,知乎导航界面中元素的视差,关于它们的实现原理,在 ViewPager动画 这篇中有详细的分析,其中也提到了GitHub上一些和ViewPager动画类似的实现,也分析了它们之间的区别,具体可以参考文章。PropertyAnim 实际应用主要介绍了一些简单API的使用,亮点是其中介绍了很多GitHub 上的动画项目,其中实现多数使用了NineOldAndroids兼容库,可以作为不错的学习资料。上面几篇文章中都有非常详细的介绍,就不多说了,因为文章中对于一些概念,使用,原理介绍的确实太详细了,现在想起来,当时钻的确实有点深了,比如PropertyAnim 详解这篇文章,对属性动画中的ValueAnimator,Evaluators,Interpolators的介绍以及TimeInterpolator和TypeEvaluator的比较等等,具体的可以参考文章。这几篇文章看下来,你应该对android动画有一些更系统更深入的认识了。基本的动画实现应该没啥难度了。每篇文章的信息量很是很大的,因为在学习过程中主要是通过大量的GitHub动画项目,也参考了不少资料,在文章结尾处有提及。 如果你还想进阶,这里再分享一些不错的项目,这些项目都是在android动画基础上建立起来的,所以看他们的源码,完全没有难度:
‘陆’ 如何在Android中使用虚线
android开发中虚线的用法:
一、自己创建模式,一个点一个点的绘制。
二、用Android提供的 DashPathEffect 类来创建模式绘制。
下面我要演示的就是第二种方法,用Android提供给我的API来绘制。
由于是开发项目的一个小块,下面只能给出部分截图:
下面看一下核心绘图代码:
public void draw(Canvas mcanvas) {
GameLog.log(Tag, "draw");
Paint mLinePaint = new Paint();
mLinePaint.setColor(Color.WHITE);
mLinePaint.setStyle(Paint.Style.STROKE);
//绘制模式
PathEffect effect = new DashPathEffect(new float[] { 1, 2, 4, 8}, 1);
mLinePaint.setAntiAlias(true);
mLinePaint.setPathEffect(effect);
mLinePaint.setStrokeWidth(4);
if (GameManager.getState() == GameManager.GameStart) {
GameLog.log(Tag, "GameStart");
float[] oldPts = getPts(mOldPoints);
mCanvas.drawLines(oldPts, mLinePaint);
prepareLinesData();
float[] newPts = getPts(mNewPoints);
mCanvas.drawLines(newPts, mLinePaint);
}
}
简单介绍下 PathEffect类:
PathEffect是用来控制绘制轮廓(线条)的方式。
PathEffect对于绘制Path基本图形特别有用,但是它们也可以应用到任何Paint中从而影响线条绘制的方式。
使用PathEffect,可以改变一个形状的边角的外观并且控制轮廓的外表。
Android包含了多个PathEffect,包括:
CornerPathEffect 可以使用圆角来代替尖锐的角从而对基本图形的形状尖锐的边角进行平滑。
DashPathEffect 可以使用DashPathEffect来创建一个虚线的轮廓(短横线/小圆点),而不是使用实线。你还可以指定任意的虚/实线段的重复模式。
DiscretePathEffect 与DashPathEffect相似,但是添加了随机性。当绘制它的时候,需要指定每一段的长度和与原始路径的偏离度。
PathDashPathEffect 这种效果可以定义一个新的形状(路径)并将其用作原始路径的轮廓标记。
下面的效果可以在一个Paint中组合使用多个Path Effect。
SumPathEffect 顺序地在一条路径中添加两种效果,这样每一种效果都可以应用到原始路径中,而且两种结果可以结合起来。
ComposePathEffect 将两种效果组合起来应用,先使用第一种效果,然后在这种效果的基础上应用第二种效果。
对象形状的PathEffect的改变会影响到形状的区域。这就能够保证应用到相同形状的填充效果将会绘制到新的边界中。
‘柒’ Android的界面是如何适配多样化屏幕
在研究Android的icon设计之前,有必要先了解Android的界面是如何适配多样化屏幕的。
适配性
上一篇博文中提到,由于同一个UI元素(如100 x100像素的图片)在高精度的屏幕上要比低精度的屏幕上看起来要小,为了让这两个屏幕上的图片看起来效果差不多,可以采用以下两种方法:
程序将图片进行缩放,但是效果较差。
为这两个精度屏幕的手机各提供一个图片。
三种尺寸:大,中,小。
三种精度:高(hdpi),中(mdpi)和低(ldpi)。
但是屏幕的参数多样化,为每一个精度的屏幕都设计一套icon,工作量大并且不能满足程序的兼容性要求,势必要对屏幕的分级,如在160dpi和180dpi的手机屏幕上采用同一套icon,当这套icon在240dpi效果满足不了设计要求,就需要另做一套稍大些的icon。
在Android 1.5以及更早的版本中,只支持3.2″ 屏幕上的HVGA (320×480)分辨率,开发人员也不需要考虑界面的适配性问题。从Android 1.6之后,平台支持多种尺寸和分辨率的设备,这也就意味着开发人员在设计时要考虑到屏幕的多样性。
为了简化设计并且兼容更多的手机屏幕,平台依照尺寸和分辨率对屏幕进行了区分:
程序可以为这三种尺寸的屏幕提供默认资源,如有需要,还可以为各种精度的屏幕提供资源。在运行时,系统会根据屏幕布局加载正确尺寸或者精度的图片。

iPhone的icon设计就这么简单,iPhone的屏幕只有320×480像素,所以程序没有适配性问题。
参考文章:
《Icon Design Guidelines, Android 2.0》
《iPhone human interface guidelines》
本文由站酷网-zystoo翻译,转载请保留此信息,多谢合作。
‘捌’ 安卓手机上有哪些好用的视频剪辑软件
手机版ae--视频豆豆功能详述推荐使用视频豆豆,这款软件相对来说比较专业,都是基于pc端的ae(也就是after
effect)有很多是这款软件首创且特有的功能,像巧影还有video
leap一样支持关键帧动画,还比前2种软件更精确,因为它有具体的参数可以调节,能做出开门看到演唱会啊,流星雨啊等等特效,说白了是用遮罩做的,但是前2个软件的缺点就是不能自定义遮罩,如果遇到一些比较复杂点的形状的就做不了
了,而视频豆豆则可以使用自定义遮罩来解决这点
另外视频豆豆特有的可以支持到一帧的修剪、形状,图片,视频,文字3d动画,形状,文字填充及描边动画等等。
1、支持超多图层素材(视频、GIF、文字、贴纸、形状、颜色层(ae固态层)、调整层、音频)之前有用户说他做了个300多层轨道的,我表示很佩服
2、修剪、拆分、
3、可以替换图片(如果当前图片做了一些比如位移,缩放,旋转,3d,遮罩等动画效果,那么替换之后的图片也继承保留了之前的这些)
3、变速、倒放、反复(鬼畜)、冻结帧
4、音频分离
5、精准设置素材时长(包括GIF)
6、精准定位素材起始时间
7、同时选中多个图层进行移动、缩放、旋转、删除等操作
8、序列图层
9、快照、保存当前图层、
10、视频、图片、GIF图片的裁剪
11、融合模式
12、一键添加本地字体
13、动画制作
14、遮罩动画(可以自定义遮罩以及做动画)
15、特效动画(可做动画的特效)
16、3D文字、3d图片
17、文字以及文字的颜色,描边颜色,间距,行距,范围动画
18.形状以及自定义形状,动画(路径、修剪路径、描边,填充等动画)
‘玖’ 我怎样才能工作与Android EffectFactory类
试试这个
****************** For Sepia effect ******************
public Bitmap toSephia(Bitmap bmpOriginal)
{
int width, height, r,g, b = 0, c, gry;
height = bmpOriginal.getHeight();
width = bmpOriginal.getWidth();
int depth = 20;
Bitmap bmpSephia = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bmpSephia);
Paint paint = new Paint();
ColorMatrix cm = new ColorMatrix();
cm.setScale(.3f, .3f, .3f, 1.0f);
ColorMatrixColorFilter f = new ColorMatrixColorFilter(cm);
paint.setColorFilter(f);
canvas.drawBitmap(bmpOriginal, 0, 0, paint);
int [] pixelArray = new int [bmpOriginal.getWidth()*bmpOriginal.getHeight()] ;
bmpOriginal.getPixels(pixelArray, 0, bmpOriginal.getWidth(), 0, 0, bmpOriginal.getWidth(), bmpOriginal.getHeight());
for(int i=0 ; i<pixelArray.length; i ++){
r = (pixelArray[i] >> 16) & 0xFF; //Isolate Red Channel value...
g = (pixelArray[i] >> 8) & 0xFF; //Isolate Green Channel value...
g = pixelArray[i] & 0xFF; //Isolate Blue Channel value...
gry = (r + g + b) / 3;
r = g = b = gry;
r = r + (depth * 2);
g = g + depth;
if(r > 255) {
r = 255;
}
if(g > 255) {
g = 255;
}
pixelArray[i] = Color.rgb(r, g, b) ;
}
return Bitmap.createBitmap(pixelArray, width, height, Config.ARGB_8888) ;
}
****************** For Grayscale effect ******************
public Bitmap toGrayscale(Bitmap bmpOriginal)
{
int width, height;
height = bmpOriginal.getHeight();
width = bmpOriginal.getWidth();
Bitmap bmpGrayscale = Bitmap.createBitmap(width, height, Bitmap.Config.RGB_565);
Canvas c = new Canvas(bmpGrayscale);
Paint paint = new Paint();
ColorMatrix cm = new ColorMatrix();
cm.setSaturation(0);
ColorMatrixColorFilter f = new ColorMatrixColorFilter(cm);
paint.setColorFilter(f);
c.drawBitmap(bmpOriginal, 0, 0, paint);
return bmpGrayscale;
}
‘拾’ 安卓手机控制音效声道一类的文件夹在哪
安卓手机控制音效声道一类的位置在/media/audio,系统各个文件夹位置为:
1、/dev 这里是Linux系统常规文件夹,里面的文件很多都是设备模拟的文件系统,一般用户无需理会。
2、/system/fonts 这里面保存着系统的字体,如果你有root权限,可以往里添加自己喜欢的字体,比如雅黑。
3、/system/framework 这里是android系统的框架,里面保存着系统核心程序或java类库,十分重要里面的任何文件几乎都不要做删除操作。
4、/media/audio 这里面保存着安卓系统默认的铃声,alarms是闹铃提醒的,notification是短信或提示音,ringtones是来电铃声,而ui是一些界面音效,比如键盘敲击声。
