- 浏览: 47744 次
- 性别:
- 来自: 上海
文章分类
最新评论
1.Android开发 给图片加边框
http://www.android100.org/html/201303/20/1941.html
2.Android开发之Bitmap图片旋转
http://www.android100.org/html/201303/20/1934.html
3.安卓源码服务专家
http://www.javaapk.com/
http://www.javaapk.com/source/category/demo
4.ImageLoader显示图片
4.屏幕长亮
方法 1: 使用 PowerManager 和 WakeLock
In AndroidManifest.xml:
1
方法 2: 使用标志 window flag FLAG_KEEP_SCREEN_ON
5.Math取整方法
总结:floor向下取整,ceil向上取整;round和rint四舍五入,取绝对值后舍入,然后加上符号,遇到.5的时候向绝对值小的方向舍之。
6.ImageView图片显示
//ImageCacheUtil
7.ImageView
ImageView android:scaleType="centerCrop"
CENTER :在视图中使图像居中,不执行缩放。
CENTER_CROP:均衡的缩放图像(保持图像原始比例),使图片的两个坐标(宽、高)都大于等于 相应的视图坐标(负的内边距)
CENTER_INSIDE:均 衡的缩放图像(保持图像原始比例),使图片的两个坐标(宽、高)都小于等于 相应的视图坐标(负的内边距)
FIT_CENTER:使用 CENTER 方式缩放图像
FIT_END:使用 END 方式缩放图像
FIT_START:使用 START 方式缩放图像
FIT_XY:使 用 FILL 方式缩放图像
MATRIX:绘制时,使用图像矩阵方式缩放
8.实现水平ListView,并且解决水平ListView在ScrollView中出现的滑动冲突
链接:http://liucanwen.iteye.com/blog/2020004
9. 获得控件的宽高
显示本地图片报错:OOM
http://www.android100.org/html/201303/20/1941.html
2.Android开发之Bitmap图片旋转
http://www.android100.org/html/201303/20/1934.html
3.安卓源码服务专家
http://www.javaapk.com/
http://www.javaapk.com/source/category/demo
4.ImageLoader显示图片
当然可以从sdcard中加载图片。他可以接收的URL有以下几种: String imageUri = "http://site.com/image.png"; // from Web String imageUri = "file:///mnt/sdcard/image.png"; // from SD card String imageUri = "content://media/external/audio/albumart/13"; // from content provider String imageUri = "assets://image.png"; // from assets String imageUri = "drawable://" + R.drawable.image; // from drawables (only images, non-9patch)
4.屏幕长亮
方法 1: 使用 PowerManager 和 WakeLock
In AndroidManifest.xml:
1
<uses-permission android:name="android.permission.WAKE_LOCK" /> 在你的activity中: PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE); PowerManager.WakeLock mWakeLock = pm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK, "My Tag"); // 在 onResume()方法中加入: mWakeLock.acquire(); //锁住屏幕,使其常亮 //在 onPause() 中加入: mWakeLock.release();//解锁屏幕。让系统管理屏幕
方法 2: 使用标志 window flag FLAG_KEEP_SCREEN_ON
@Override protected void onCreate(Bundle icicle) { super.onCreate(icicle); getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); }
5.Math取整方法
舍掉小数取整:Math.floor(2)=2 舍掉小数取整:Math.floor(2.1)=2 舍掉小数取整:Math.floor(-2.1)=-3 舍掉小数取整:Math.floor(-2.5)=-3 舍掉小数取整:Math.floor(-2.9)=-3 四舍五入取整:Math.rint(2)=2 四舍五入取整:Math.rint(2.1)=2 四舍五入取整:Math.rint(-2.5)=-2 四舍五入取整:Math.rint(2.5)=2 四舍五入取整:Math.rint(2.9)=3 四舍五入取整:Math.rint(-2.9)=-3 四舍五入取整:Math.rint(-2.49)=-2 四舍五入取整:Math.rint(-2.51)=-3 凑整:Math.ceil(2)=2 凑整:Math.ceil(2.1)=3 凑整:Math.ceil(2.5)=3 凑整:Math.ceil(2.9)=3 舍掉小数取整:Math.floor(-2)=-2 舍掉小数取整:Math.floor(-2.1)=-3 舍掉小数取整:Math.floor(-2.5)=-3 舍掉小数取整:Math.floor(-2.9)=-3 凑整:Math.ceil(-2)=-2 凑整:Math.ceil(-2.1)=-2 凑整:Math.ceil(-2.5)=-2 凑整:Math.ceil(-2.9)=-2 Math.round(3.14)3 Math.round(3.5)4 Math.round(-3.14)-3 Math.round(-3.5)-3
总结:floor向下取整,ceil向上取整;round和rint四舍五入,取绝对值后舍入,然后加上符号,遇到.5的时候向绝对值小的方向舍之。
6.ImageView图片显示
//Drawable 显示SD卡里图片 Drawable drawable = Drawable .createFromPath(ConstantEp.path_reading01_images + path); System.out.println("drawable :"+drawable); ivPic.setImageDrawable(drawable); //Bitmap 显示SD卡里图片 Bitmap b = ImageCacheUtil.getResizedBitmap(null, null, mContext, ImageCacheUtil.readSdPic(ConstantEp.path_reading01_images + path), 80, false); ivPic.setImageBitmap(b); //反射 显示图片 int id = BaseCommon.getImage(mContext, path.substring(0, path.length()-4)); System.out.println("id :"+id); ivPic.setImageResource(id);
//ImageCacheUtil
import java.io.File; import java.io.InputStream; import android.content.ContentResolver; import android.content.Context; import android.content.res.Resources; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.BitmapFactory.Options; import android.net.Uri; import android.os.Environment; /** * @author frankiewei. 工具类. */ public class ImageCacheUtil { /** * 获取合适的Bitmap平时获取Bitmap就用这个方法吧. * * @param path * 路径. * @param data * byte[]数组. * @param context * 上下文 * @param uri * uri * @param target * 模板宽或者高的大小. * @param width * 是否是宽度 * @return */ public static Bitmap getResizedBitmap(String path, byte[] data, Context context, Uri uri, int target, boolean width) { Options options = null; if (target > 0) { /*Options info = new Options(); // 这里设置true的时候,decode时候Bitmap返回的为空, // 将图片宽高读取放在Options里. info.inJustDecodeBounds = false; info.inPreferredConfig = Bitmap.Config.RGB_565; decode(path, data, context, uri, info); int dim = info.outWidth; if (!width) dim = Math.max(dim, info.outHeight); int ssize = sampleSize(dim, target);*/ int ssize = 1; options = new Options(); options.inPreferredConfig=Bitmap.Config.RGB_565;//表示16位位图 565代表对应三原色占的位数 options.inInputShareable=true; options.inPurgeable=true;//设置图片可以被回收 options.inSampleSize = ssize; } Bitmap bm = null; try { bm = decode(path, data, context, uri, options); } catch (Exception e) { e.printStackTrace(); } return bm; } /** * 解析Bitmap的公用方法. * * @param path * @param data * @param context * @param uri * @param options * @return */ public static Bitmap decode(String path, byte[] data, Context context, Uri uri, BitmapFactory.Options options) { Bitmap result = null; if (path != null) { result = BitmapFactory.decodeFile(path, options); } else if (data != null) { result = BitmapFactory.decodeByteArray(data, 0, data.length, options); } else if (uri != null) { // uri不为空的时候context也不要为空. ContentResolver cr = context.getContentResolver(); InputStream inputStream = null; try { inputStream = cr.openInputStream(uri); result = BitmapFactory.decodeStream(inputStream, null, options); inputStream.close(); } catch (Exception e) { e.printStackTrace(); } catch (OutOfMemoryError e) { e.printStackTrace(); } } return result; } /** * 获取合适的sampleSize. 这里就简单实现都是2的倍数啦. * * @param width * @param target * @return */ private static int sampleSize(int width, int target) { int result = 1; for (int i = 0; i < 10; i++) { if (width < target * 2) { break; } width = width / 2; result = result * 2; } return result; } /** * 读取本地图片 * @param context * @param id=等价=R.drawable.pic * @return */ public Bitmap recodeResPic(Context context , int id, int target) { Resources r = context.getResources(); Uri uri = Uri.parse(ContentResolver.SCHEME_ANDROID_RESOURCE + "://" + r.getResourcePackageName(id) + "/" + r.getResourceTypeName(id) + "/" + r.getResourceEntryName(id)); Bitmap bitmap = ImageCacheUtil.getResizedBitmap(null, null, context, uri, target, false); // Bitmap bitmap = ImageCacheUtil.getResizedBitmap(null, null, // context, uri, 400, false); return bitmap; } // 本地sd卡里的图片读取转换成URI public static Uri readSdPic(String path) { File file = new File(path); return Uri.fromFile(file); } public Bitmap recodeResPic(Context context , int id) { Resources r = context.getResources(); Uri uri = Uri.parse(ContentResolver.SCHEME_ANDROID_RESOURCE + "://" + r.getResourcePackageName(id) + "/" + r.getResourceTypeName(id) + "/" + r.getResourceEntryName(id)); Bitmap bitmap = ImageCacheUtil.getResizedBitmap(null, null, context, uri, 100, false); return bitmap; } }
7.ImageView
ImageView android:scaleType="centerCrop"
CENTER :在视图中使图像居中,不执行缩放。
CENTER_CROP:均衡的缩放图像(保持图像原始比例),使图片的两个坐标(宽、高)都大于等于 相应的视图坐标(负的内边距)
CENTER_INSIDE:均 衡的缩放图像(保持图像原始比例),使图片的两个坐标(宽、高)都小于等于 相应的视图坐标(负的内边距)
FIT_CENTER:使用 CENTER 方式缩放图像
FIT_END:使用 END 方式缩放图像
FIT_START:使用 START 方式缩放图像
FIT_XY:使 用 FILL 方式缩放图像
MATRIX:绘制时,使用图像矩阵方式缩放
8.实现水平ListView,并且解决水平ListView在ScrollView中出现的滑动冲突
链接:http://liucanwen.iteye.com/blog/2020004
9. 获得控件的宽高
// 获取控件的宽高 private int getViewWidth(View view) { int w = View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED); int h = View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED); view.measure(w, h); int height = view.getMeasuredHeight(); int width = view.getMeasuredWidth(); System.out.println("measure width=" + width + " height=" + height); return width; }
显示本地图片报错:OOM
[size=medium]public Bitmap readBitmap(Context context, int id){ BitmapFactory.Options opt = new BitmapFactory.Options(); opt.inPreferredConfig=Bitmap.Config.RGB_565;//表示16位位图 565代表对应三原色占的位数 opt.inInputShareable=true; opt.inPurgeable=true;//设置图片可以被回收 InputStream is = context.getResources().openRawResource(id); return BitmapFactory.decodeStream(is, null, opt); } private AnimationDrawable setData(Context context) { AnimationDrawable frameAnim = new AnimationDrawable(); for (int i = 0; i <10; i++) { int resId = new BaseCommon().getImageId(context, ("star_" + i)); Bitmap bmp = readBitmap(mContext, resId); BitmapDrawable bmpDraw = new BitmapDrawable(bmp); frameAnim.addFrame(bmpDraw, 200); } // 设置为循环播放 frameAnim.setOneShot(true); // 设置ImageView的背景为AnimationDrawable return frameAnim; }[/size]
发表评论
-
android 判断ImageView当前显示的是哪一张图片
2015-12-29 14:40 1712判断ImageView当前显示的是哪一张图片 private ... -
Android 4.4及以上WebView问题
2015-10-27 17:41 11151. 4.4系统以上WebView页面内容重叠问题 连接 ... -
Android AlertDialog包含EditText,软键盘不能弹出的解决方法
2015-09-16 14:31 1150AlertDialog包含EditText,软键盘不能弹出的解 ... -
无法上传so文件到svn上
2015-05-25 16:48 921Window-->Team-->Ignored R ... -
Android 文件下载与解压缩
2015-03-20 18:20 394转载:http://blog.csdn.net/hopehe8 ... -
Cocos2dx与Android进行交叉编译的大概步骤
2015-02-06 17:22 1168cocos2d交叉编译配置: 1.下载cygwin 64位ex ... -
博客链接
2014-11-26 16:01 01.好文章博客:http://blog.csdn.net/xi ... -
创建文件夹和文件
2014-10-22 15:15 750String commonPath = Environment ... -
Android 线程的使用(传递多个参数)
2014-08-06 11:08 21871.Thread new Thread(new Runnabl ... -
cocos2dx 内存管理
2014-08-04 18:18 595cocos2dx 内存管理 转载自:http://blog. ... -
android读取图片
2014-07-25 11:56 1030[size=large]一:读取res中的图片 //读取本地r ... -
Android ListView里设置默认Item的背景颜色
2014-07-23 11:51 863<?xml version="1.0" ... -
以某一点旋转(RotateAnimation)
2014-06-20 12:07 1795//自适应屏幕大小 webview.getSetting ... -
popWindow
2014-05-23 18:07 443popWindow -
自定义跑马灯
2014-05-23 16:46 616自定义跑马灯 -
WebView的使用总结
2014-05-05 12:09 684//自适应屏幕大小 webview.getSettings ... -
android 动态设置布局
2014-03-26 11:03 9871.动态设置RelativeLayout的布局 // 根据 ... -
android移动开发的很好的功能的网页
2014-03-19 18:15 704android经典DEMO http://blog.csdn ... -
android Uri获取真实路径转换成File的方法
2014-02-14 16:23 2056有的时候要将android uri如content://me ... -
android学习的进阶(从零开始,从初级到高级)
2014-02-08 12:08 2184轻松几步学Android开发 1. ...
相关推荐
### Android Studio 项目实例详解:音乐播放器 #### 项目概览 本项目是一个基于 Android Studio 开发的...通过实践这些项目,开发者不仅能掌握基本的 Android 开发技能,还能深入了解 Android 平台的高级特性和技术。
- Android基础教程:介绍Android开发的基本概念和技术。 - Android应用程序开发详解:涵盖从入门到进阶的各个方面。 - Android专业应用开发:面向更高级的应用开发需求。 - Android平台底层技术原理解析:深入...
【Android 安卓 蓝牙资料汇总】 在Android平台上进行蓝牙开发是一项常见的任务,尤其在构建物联网(IoT)应用、设备配对和数据传输等方面。以下是对压缩包文件中涉及的Android蓝牙开发相关知识点的详细说明: 1. **...
Android界面效果的全面汇总涉及了Android应用开发中界面设计与交互效果的多个方面。以下将从给定文件的标题和描述中提取并详细阐述相关知识点。 ### 1. Activity页面切换效果 Activity页面切换效果是用户在使用...
"Android平台输入法源码汇总"是一个资源集合,对于想要深入理解输入法实现机制或者开发自己的Android输入法的人来说,具有很高的参考价值。 首先,我们来探讨Android输入法的基本架构。Android输入法主要由服务端...
### Android基础知识概览 #### 一、Android简介 Android是一个为移动设备设计的软件栈,由Google维护并主导发展,包含操作系统、中间件以及一系列关键应用程序。它为开发者提供了广泛的工具集与API,使得开发者...
以上就是Android开发中的一些核心技巧,理解并熟练运用这些知识点,能帮助开发者更好地构建功能丰富、用户体验优良的应用程序。在实际项目中,还需要关注性能优化、内存管理、多线程处理、网络请求、数据库操作等...
### Android界面特殊效果全汇总 #### 一、Activity页面切换效果 在Android开发中,页面间的过渡动画可以显著提升用户体验,让应用看起来更加流畅和专业。从Android 2.0开始,开发者可以通过`...
"telecapoland-jamendo-android-6cd07fb(国外开源音乐播放器)"是一个音乐播放应用,它涵盖了音频播放、流媒体服务集成和音乐库管理等功能,对于想要开发音乐应用的开发者提供了丰富的学习材料。 最后,"仿Siri的...
1. **Android基础知识**:这是学习Android开发的起点,包括Java语言基础、Android Studio的使用、XML布局设计、Activity生命周期管理等。了解这些基础知识能够构建一个稳固的开发环境。 2. **Android组件**:...
在IT行业中,Android平台是移动应用开发的重要领域,尤其对于软件工程师来说,了解并掌握Android基础知识至关重要。"Android笔试汇总"这个主题包含了Android开发者在面试或笔试时可能会遇到的关键知识点,这些知识点...
### Android开发技巧总汇 #### 1. 入门实例剖析 在开始深入探讨各种Android开发技巧之前,我们首先从一个简单的入门实例入手——“记事本”应用。这一部分旨在帮助初学者快速上手,并逐步熟悉Android开发的基本...
在Android系列问答汇总中,...总之,Android系列问答汇总涵盖的内容广泛,从基本的组件使用到高级的性能调优,每一个知识点都值得深入学习和实践。通过不断的学习和探索,你可以从Android开发的菜鸟逐渐成长为高手。
"Android中文API文档(系列汇总)"是一个集合了Android各个组件API的中文参考资料,旨在为开发者提供便捷的查询途径,帮助他们在编程过程中快速找到所需的信息。这篇文档详尽地涵盖了Android系统的各个方面,包括但不...
本教材旨在帮助读者快速有效地学习Android Studio,并通过实践构建功能完善的Android应用程序。 #### 二、关于作者和技术审稿人 本书由Adam Gerber和Clifton Craig合著,他们都是在Android开发领域有着丰富经验的...
### Android实习汇总笔记知识点 #### 一、Android开发环境搭建 **知识点1:JDK安装** - **描述**:Java Development Kit(JDK)是Android应用开发的基础,必须首先安装JDK,推荐版本为1.6。 - **操作**:下载对应...
入门实例剖析是 Android 开发的基础部分,包括基本的 Activity 管理、Intent 使用、UI 布局等。通过学习和掌握这些基础知识,可以快速上手 Android 开发。 对话框处理 对话框处理是 Android 开发中非常重要的一...