- 浏览: 5820371 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (890)
- WindowsPhone (0)
- android (88)
- android快速迭代 (17)
- android基础 (34)
- android进阶 (172)
- android高级 (0)
- android拾遗 (85)
- android动画&效果 (68)
- Material Design (13)
- LUA (5)
- j2me (32)
- jQuery (39)
- spring (26)
- hibernate (20)
- struts (26)
- tomcat (9)
- javascript+css+html (62)
- jsp+servlet+javabean (14)
- java (37)
- velocity+FCKeditor (13)
- linux+批处理 (9)
- mysql (19)
- MyEclipse (9)
- ajax (7)
- wap (8)
- j2ee+apache (24)
- 其他 (13)
- phonegap (35)
最新评论
-
Memories_NC:
本地lua脚本终于执行成功了,虽然不是通过redis
java中调用lua脚本语言1 -
ZHOU452840622:
大神://处理返回的接收状态 这个好像没有监听到 遇 ...
android 发送短信的两种方式 -
PXY:
拦截部分地址,怎么写的for(int i=0;i<lis ...
判断是否登录的拦截器SessionFilter -
maotou1988:
Android控件之带清空按钮(功能)的AutoComplet ...
自定义AutoCompleteTextView -
yangmaolinpl:
希望有表例子更好。。。,不过也看明白了。
浅谈onInterceptTouchEvent、onTouchEvent与onTouch
DiagonalView
https://github.com/IntruderShanky/Squint
一个可以根据图片变颜色,更加细腻的阴影效果的 Imgae 控件
https://github.com/yingLanNull/ShadowImageView
仿QQ讨论组头像
https://github.com/YiiGuxing/CompositionAvatar
一个将子view显示为多边形图案的布局
http://www.jcodecraeer.com/a/opensource/2017/0105/6942.html
实现微信QQ组头像 , 设置描边 , 设置圆角矩形圆形头像 等
http://www.open-open.com/lib/view/open1482459625909.html
ParallaxImageView
https://github.com/nvanbenschoten/motion
Android图片压缩工具,仿微信朋友圈压缩策略
http://www.jcodecraeer.com/a/opensource/2016/0802/4542.html
Android加载超长图(微博长图)
http://www.see-source.com/blog/300000024/1247.html
使用 supportV4 的 RoundedBitmapDrawable 实现圆角
http://blog.csdn.net/ys743276112/article/details/52316588
Android Drawable 那些不为人知的高效用法
http://blog.csdn.net/lmj623565791/article/details/43752383
一个图片裁减库,可以自定义UI,非常不错
http://www.jcodecraeer.com/a/opensource/2015/0822/3343.html
一个为ImageView添加徽章,标记(badge)的库
http://www.jcodecraeer.com/a/opensource/2015/1125/3720.html
图像滤镜艺术---ZPhotoEngine超级算法库
http://blog.csdn.net/trent1985/article/details/49616623
带有手势控制的ImageView和FrameLayout
http://www.jcodecraeer.com/a/opensource/2015/1030/3640.html
http://www.jcodecraeer.com/a/opensource/2015/1030/3639.html
http://www.jcodecraeer.com/a/opensource/2015/1029/3636.html
单手操作图片控件 镜像、置顶、缩放、移动StickerView
http://www.jcodecraeer.com/a/opensource/2015/0922/3498.html
ImageProcessing基于StickerView 现有基础的优化
https://github.com/pepoc/ImageProcessing
将图片像素化的库,可像素化特定区域
http://www.jcodecraeer.com/a/opensource/2015/0902/3404.html
带标签的ImageView扩展:SimpleTagImageView
http://www.open-open.com/lib/view/open1426813954054.html
http://www.open-open.com/lib/view/open1429361445830.html
Android ImageView的强大扩展:FlexiImageView
特性
多种形状的支持(圆形,矩形/正方形,三角形)
高斯模糊效果
反射
自定义边框支持
可定制的阴影支持
在同一个视图中展示多张图片:
http://www.open-open.com/lib/view/open1426473437414.html
Android ImageView 扩展:PhotoView
http://www.open-open.com/lib/view/open1366181874046.html
Android PowerImageView实现,可以播放动画的强大ImageView
http://www.open-open.com/lib/view/open1391690691535.html
ImageView的ScaleType属性
ImageView的属性android:scaleType,即 ImageView.setScaleType(ImageView.ScaleType)
属性如下:
CENTER /center 按图片的原来size居中显示,当图片长/宽超过View的长/宽,则截 取图片的居中部分显示
CENTER_CROP / centerCrop 按比例扩大图片的size居中显示,使得图片长 (宽)等于或大于View的长(宽)
CENTER_INSIDE / centerInside 将图片的内容完整居中显示,通过按比例缩小 或原来的size使得图片长/宽等于或小于View的长/宽
FIT_CENTER / fitCenter 把图片按比例扩大/缩小到View的宽度,居中显示
FIT_END / fitEnd 把 图片按比例扩大/缩小到View的宽度,显示在View的下部分位置
FIT_START / fitStart 把 图片按比例扩大/缩小到View的宽度,显示在View的上部分位置
FIT_XY / fitXY 把图片 不按比例 扩大/缩小到View的大小显示
MATRIX / matrix 用矩阵来绘制
ImageView.ScaleType设置图解
同时使用ImageView的src和background属性实现点击效果
android:adjustViewBounds
是否保持宽高比。需要与maxWidth、MaxHeight一起使用,否则单独使用没有效果。
android:cropToPadding
是否截取指定区域用空白代替。单独设置无效果,需要与scrollY一起使用。
android:src对应的方法为setImageResource(R.drawable.xxx),而不是setBackgroundResource(R.drawable.txxx)
关于ImageView和level-list一起使用以显示不同的图片
有时候,我们为了在一个ImageView中显示不同的图片,往往会使用:
其实可以用level-list实现相同的功能。
首先,在res/drawable下建立一个xml文件,内容如下:
然后在layout中把ImageView的src设置成已创建好的xml文件。
程序中变换图片时,只需要使用:
Android会根据level的值自动选择对应的图片。手机显示剩余电量就是用这个方法来显示不同图片的。
让帧动画在结束时消失
在帧动画结束的时候,如何让他消失呢?android提供了击中巧妙的方法:
一般使用帧动画的过程如下:
上面的代码在帧动画结束的时候会保持帧动画的最后一帧。如何让他在结束的时候消失呢?
当然可以写Listener来监听帧动画的结束事件了。不过这种实现方式不准确。
其实只需要在animation-list中最后增加一个item
@android:id/empty 将ImageView的BackGroundResource 的id 设置为空就ok了。
Android ImageView图片透明区域不响应点击事件,不规则图片透明区域响应点击事件
Android 多个ImageView图片层叠透明区域点击事件穿透
ImageView中用Animation-list实现逐帧动画
Android 实现简单截屏并保存为文件
可点可拖动,功能类似seekbar,由camera源码的switch修改的类
camera源码设置条,自己写了个类,具有其主要功能,同样有switcher改进
正方形的ImageView
https://github.com/IntruderShanky/Squint
一个可以根据图片变颜色,更加细腻的阴影效果的 Imgae 控件
https://github.com/yingLanNull/ShadowImageView
仿QQ讨论组头像
https://github.com/YiiGuxing/CompositionAvatar
一个将子view显示为多边形图案的布局
http://www.jcodecraeer.com/a/opensource/2017/0105/6942.html
实现微信QQ组头像 , 设置描边 , 设置圆角矩形圆形头像 等
http://www.open-open.com/lib/view/open1482459625909.html
ParallaxImageView
https://github.com/nvanbenschoten/motion
Android图片压缩工具,仿微信朋友圈压缩策略
http://www.jcodecraeer.com/a/opensource/2016/0802/4542.html
Android加载超长图(微博长图)
http://www.see-source.com/blog/300000024/1247.html
使用 supportV4 的 RoundedBitmapDrawable 实现圆角
http://blog.csdn.net/ys743276112/article/details/52316588
Android Drawable 那些不为人知的高效用法
http://blog.csdn.net/lmj623565791/article/details/43752383
一个图片裁减库,可以自定义UI,非常不错
http://www.jcodecraeer.com/a/opensource/2015/0822/3343.html
一个为ImageView添加徽章,标记(badge)的库
http://www.jcodecraeer.com/a/opensource/2015/1125/3720.html
图像滤镜艺术---ZPhotoEngine超级算法库
http://blog.csdn.net/trent1985/article/details/49616623
带有手势控制的ImageView和FrameLayout
http://www.jcodecraeer.com/a/opensource/2015/1030/3640.html
http://www.jcodecraeer.com/a/opensource/2015/1030/3639.html
http://www.jcodecraeer.com/a/opensource/2015/1029/3636.html
单手操作图片控件 镜像、置顶、缩放、移动StickerView
http://www.jcodecraeer.com/a/opensource/2015/0922/3498.html
ImageProcessing基于StickerView 现有基础的优化
https://github.com/pepoc/ImageProcessing
将图片像素化的库,可像素化特定区域
http://www.jcodecraeer.com/a/opensource/2015/0902/3404.html
带标签的ImageView扩展:SimpleTagImageView
http://www.open-open.com/lib/view/open1426813954054.html
http://www.open-open.com/lib/view/open1429361445830.html
Android ImageView的强大扩展:FlexiImageView
特性
多种形状的支持(圆形,矩形/正方形,三角形)
高斯模糊效果
反射
自定义边框支持
可定制的阴影支持
在同一个视图中展示多张图片:
http://www.open-open.com/lib/view/open1426473437414.html
Android ImageView 扩展:PhotoView
http://www.open-open.com/lib/view/open1366181874046.html
Android PowerImageView实现,可以播放动画的强大ImageView
http://www.open-open.com/lib/view/open1391690691535.html
ImageView的ScaleType属性
ImageView的属性android:scaleType,即 ImageView.setScaleType(ImageView.ScaleType)
属性如下:
CENTER /center 按图片的原来size居中显示,当图片长/宽超过View的长/宽,则截 取图片的居中部分显示
CENTER_CROP / centerCrop 按比例扩大图片的size居中显示,使得图片长 (宽)等于或大于View的长(宽)
CENTER_INSIDE / centerInside 将图片的内容完整居中显示,通过按比例缩小 或原来的size使得图片长/宽等于或小于View的长/宽
FIT_CENTER / fitCenter 把图片按比例扩大/缩小到View的宽度,居中显示
FIT_END / fitEnd 把 图片按比例扩大/缩小到View的宽度,显示在View的下部分位置
FIT_START / fitStart 把 图片按比例扩大/缩小到View的宽度,显示在View的上部分位置
FIT_XY / fitXY 把图片 不按比例 扩大/缩小到View的大小显示
MATRIX / matrix 用矩阵来绘制
ImageView.ScaleType设置图解
同时使用ImageView的src和background属性实现点击效果
<ImageView android:id="@+id/image" android:layout_width="@dimen/batman_logo_width" android:layout_height="@dimen/batman_logo_height" android:background="?attr/selectableItemBackground"//点击效果 android:src="@drawable/batman_logo_transparent"//图片 style="@style/logo_image_style"/>
android:adjustViewBounds
是否保持宽高比。需要与maxWidth、MaxHeight一起使用,否则单独使用没有效果。
android:cropToPadding
是否截取指定区域用空白代替。单独设置无效果,需要与scrollY一起使用。
android:src对应的方法为setImageResource(R.drawable.xxx),而不是setBackgroundResource(R.drawable.txxx)
关于ImageView和level-list一起使用以显示不同的图片
有时候,我们为了在一个ImageView中显示不同的图片,往往会使用:
if (条件1){ image.setBackground(R.id.xxx1); }else if (条件2){ image.setBackground(R.id.xxx2); }
其实可以用level-list实现相同的功能。
首先,在res/drawable下建立一个xml文件,内容如下:
<level-list xmlns:android="http://schemas.android.com/apk/res/android"> <item android:maxLevel="0" android:drawable="@drawable/battery_0" /> <item android:maxLevel="1" android:drawable="@drawable/battery_1" /> <item android:maxLevel="2" android:drawable="@drawable/battery_2" /> <item android:maxLevel="3" android:drawable="@drawable/battery_3" /> <item android:maxLevel="4" android:drawable="@drawable/battery_4" /> </level-list>
然后在layout中把ImageView的src设置成已创建好的xml文件。
程序中变换图片时,只需要使用:
imageview.getDrawable().setImageLevel(1);
Android会根据level的值自动选择对应的图片。手机显示剩余电量就是用这个方法来显示不同图片的。
让帧动画在结束时消失
在帧动画结束的时候,如何让他消失呢?android提供了击中巧妙的方法:
一般使用帧动画的过程如下:
ImageView iv = (ImageView)findViewById(R.id.iv); iv.setBackGroundDrawable(R.id.frametest); AnimationDrawable ad = (AnimationDrawable)iv.getBackGroundDrawabe(); ad.start();
上面的代码在帧动画结束的时候会保持帧动画的最后一帧。如何让他在结束的时候消失呢?
当然可以写Listener来监听帧动画的结束事件了。不过这种实现方式不准确。
其实只需要在animation-list中最后增加一个item
<?xml version="1.0" encoding="utf-8"?> <animation-list xmlns:android="http://schemas.android.com/apk/res/android" android:oneshot="true"> <item android:drawable="@drawable/d1" android:duration="100" /> <item android:drawable="@drawable/d2" android:duration="100" /> <item android:drawable="@drawable/d3" android:duration="100" /> <item android:drawable="@drawable/d4" android:duration="100" /> <item android:drawable="@drawable/d5" android:duration="100" /> <item android:drawable="@drawable/d6" android:duration="100" /> <item android:drawable="@android:id/empty" android:duration="100" /> </animation-list>
@android:id/empty 将ImageView的BackGroundResource 的id 设置为空就ok了。
Android ImageView图片透明区域不响应点击事件,不规则图片透明区域响应点击事件
Android 多个ImageView图片层叠透明区域点击事件穿透
ImageView中用Animation-list实现逐帧动画
Android 实现简单截屏并保存为文件
可点可拖动,功能类似seekbar,由camera源码的switch修改的类
camera源码设置条,自己写了个类,具有其主要功能,同样有switcher改进
正方形的ImageView
import android.content.Context; import android.graphics.Bitmap; import android.util.AttributeSet; import android.util.Log; import android.widget.ImageView; /** * 正方形的ImageView * @author dty * */ public class SquareCenterImageView extends ImageView { public SquareCenterImageView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); } public SquareCenterImageView(Context context, AttributeSet attrs) { super(context, attrs); } public SquareCenterImageView(Context context) { super(context); } @Override public void setImageBitmap(Bitmap bm) { Log.d("roamer", "bm.getWidth():"+bm.getWidth()); Log.d("roamer", "bm.getHeight():"+bm.getHeight()); super.setImageBitmap(bm); } private void clipCenterImage(){ } @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { // For simple implementation, or internal size is always 0. // We depend on the container to specify the layout size of // our view. We can't really know what it is since we will be // adding and removing different arbitrary views and do not // want the layout to change as this happens. setMeasuredDimension(getDefaultSize(0, widthMeasureSpec), getDefaultSize(0, heightMeasureSpec)); // Children are just made to fill our space. int childWidthSize = getMeasuredWidth(); int childHeightSize = getMeasuredHeight(); //高度和宽度一样 heightMeasureSpec = widthMeasureSpec = MeasureSpec.makeMeasureSpec(childWidthSize, MeasureSpec.EXACTLY); super.onMeasure(widthMeasureSpec, heightMeasureSpec); } }
发表评论
-
某些android手机获取不到IMEI问题
2018-08-21 14:17 7630某些山寨机可能拿不到IMEI 如果非要IMEI可以模拟一个 ... -
APK安装成功后点击"打开"再按Home键应用会重启的问题
2018-08-21 14:13 2767安装系统SD卡里面的apk或者原有的程序更新版本的时候, ... -
使用volley链接Https地址时报SSLHandshakeException
2018-08-21 14:06 2131在真实设备上出现以下错误 ︰ Volley error: ... -
PhotoView+Viewpager双指缩放的时候出现pointerIndex out of range问题
2017-07-10 14:30 4244PhotoView+Viewpager开发图集效果的时候,在某 ... -
Android6.0权限封装
2017-04-01 12:04 1571简介 Android6.0中对权限分为了一般权限和危险权限。 ... -
实现点击 WebView 中的图片,调用原生控件展示图片
2017-04-01 11:14 2809现在有很多时候,我们的 App 都进行了混合开发,而最简单,最 ... -
Android 方法引用数超过 65535 优雅解决
2017-03-31 09:37 1542随着应用不断迭代更新,业务线的扩展,应用越来越大(比如:集成了 ... -
android引用资源@与属性?备忘单
2017-03-30 10:09 1287几天前我偶然发现了我A ... -
ViewPager 与SwipeRefreshLayout,RecyclerView,ScrollView滑动冲突解决方法
2017-03-30 09:55 6564ViewPager 作为一个横向滚动的控件, 在 ViewGr ... -
Android中一些你可能没注意的小效果实现
2017-02-15 21:09 0http://www.see-source.com/blog/ ... -
Android热修复:Andfix和Hotfix,两种方案的比较与实现
2017-02-15 21:00 0http://www.see-source.com/blog/ ... -
Android 从网页中跳转到本地App
2017-01-11 09:27 1880我们在使用微信、QQ、京东等app的时候,会发现有时候通过他们 ... -
Activity的启动模式和onNewIntent
2016-12-28 09:10 1333一、启动模式介绍 启 ... -
android5.0使用Notification报RemoteServiceException的解决办法
2016-08-31 16:13 11546有时android5.0下使用Notification会报如下 ... -
RecyclerView 中的 item 如何居中问题
2016-05-18 09:52 12537一个很简单的Item布局,我只要让它由上而下排列,文字居中 ... -
sqlite3:not found 解决方法
2015-12-08 16:03 2555最最最重要,先root你的手机吧 sqlite3 为一个可 ... -
隐藏底部虚拟键NavigationBar实现全屏
2015-10-08 17:20 9853import android.app.Activity; ... -
服务端执行慢或网络延迟时,Volley多次发送请求的问题
2015-07-27 15:40 6996原文: Android Volley double post ... -
如何获取 Android 设备的CPU核数、时钟频率以及内存大小
2015-06-30 17:04 4381原帖: http://www.jianshu.com/p/f7 ... -
android点滴5
2015-04-10 17:32 2049一些小效果的实现 http://www.see-source. ...
相关推荐
将上述功能封装成一个自定义的ImageView类(如PhoneImageView),可以在项目的多个地方重复使用。自定义的ImageView类需要继承自Android的ImageView,并在其内部集成GestureDetector和ScaleGestureDetector。同时,...
虽然自定义的ImageView可以播放gif,但需要注意的是,gif动画会消耗较多的CPU和内存资源。因此,为了提高性能和用户体验,可以考虑以下优化策略: - 使用缓存机制,避免重复加载。 - 对于较大的gif,可以考虑压缩...
对于ImageView显示圆角图片的需求,Android提供了一种通过设置`android:background`属性并配合使用`shape` drawable的方法,但这只适用于本地图片。对于网络图片,我们需要自定义一个圆形的ImageView。以下是一个...
注意,为了让图片在缩放后仍能正确平移,我们需要在每次缩放后重新计算ImageView的中心点。 在实现这些功能时,还需要考虑一些额外的细节,例如防止图片超出边界,以及在缩放和平移过程中保持图片的可点击性。可以...
因此,我们应该考虑使用Bitmap的缩放和复用策略,比如使用`inSampleSize`来减小加载的图片大小,或者在不再需要Bitmap时调用`recycle()`方法进行回收。 此外,如果项目中有很多地方需要显示圆形图片,可以考虑创建...
`description.txt` 文件可能包含了关于这个自定义组件的详细说明,包括如何在布局文件中使用它,如何设置圆角,以及任何需要注意的使用技巧或限制。文件可能还包含了示例代码,帮助开发者快速理解和集成这个组件到...
4. **防止内存泄漏**:注意,由于`Handler`持有对Activity的引用,可能导致内存泄漏。为避免这个问题,可以在Activity的`onDestroy()`方法中移除所有回调,或者使用弱引用`WeakReference<Activity>`。 ```java ...
本文将详细介绍如何使用自定义的RotateImageView类来实现ImageView的旋转功能。 首先,我们创建一个名为RotateImageView的类,该类继承自Android的内置组件ImageView。在RotateImageView中,我们将添加额外的功能来...
在本文中,我们将深入探讨如何使用ImageView加载图片,包括从本地资源加载和从网络加载两种常见方式。 首先,加载本地资源中的图片是最基本的操作。在XML布局文件中,我们可以通过设置`<ImageView>`的`src`属性来...
4. **重写onDraw()**:在onDraw()方法中,先调用super.onDraw(canvas)绘制原始的ImageView内容,然后使用Canvas和Paint绘制多边形边框。 5. **构建Path**:根据设定的边框形状(例如正方形、五边形、六边形等),...
`android-gif-drawable`库的核心功能是提供了一个名为`GifDrawable`的类,它可以解析GIF文件并将其转换为Android可绘制对象(Drawable),然后在ImageView或其他支持Drawable显示的地方进行渲染。与原生Android API...
这样,当我们需要在其他地方使用相同功能时,只需要实例化这个自定义的ViewPager即可。 总结来说,使用ViewPager实现图片滑动及缩放涉及到以下几个关键点:适配器的创建、图片数据的加载、手势检测、点击事件处理...
3. **加载图片**:在需要显示图片的地方,如ImageView,调用imageLoader的加载方法。通常,这些方法会接受图片的URL或者资源ID作为参数。例如,使用Glide加载网络图片:`Glide.with(context).load(url).into...
- 在你的`LoadingGif`项目中,可以创建一个专门用于加载GIF的自定义ImageView,封装上述逻辑,方便在多个地方复用。 总之,Android加载GIF图片并实现动画效果需要借助第三方库,如GIFDrawable、Glide或Picasso。...
1. **使用ImageView的setImageUrl方法**:Volley提供了一个方便的方法`setImageUrl()`,可以直接将网络URL设置为ImageView的源。 ```java String imageUrl = "http://example.com/image.jpg"; ImageView ...
在使用时,我们可以在需要加载图片的地方调用`new LoadImageTask(imageView).execute(imageUrl);`来启动异步任务。 需要注意的是,AsyncTask的数量是有限制的,如果同时启动过多的任务,可能会导致性能问题。因此,...
因此,对于简单的GIF动画需求,可以考虑使用系统内置的`UIImage`类配合`CAAnimation`实现,或者仅在必要的地方引入第三方库,以优化项目结构。 总结一下,本教程介绍了如何在iOS应用中从GIF动画创建动态UIImages...
- **创建请求队列**:在 Application 或者其他初始化的地方,创建 RequestQueue 实例。 ```java RequestQueue requestQueue = Volley.newRequestQueue(this); ``` - **创建网络请求**:Volley 提供了多种请求类型...
四、优化与注意事项 1. **内存管理**:避免一次性加载大量图像,可能导致内存溢出。可以使用内存缓存(LruCache)或文件缓存来存储图像。 2. **线程池**:对于多个图像下载,考虑使用线程池(ThreadPoolExecutor)...