android图片错位
① 有哪些比较好的 Android sqlite 开源工具类
ThinkAndroid是一个免费的开源的、简易的、遵循Apache2开源协议发布的Android开发框架,其开发宗旨是简单、快速的进行Android应用程序的开发,包含Android mvc、简易sqlite orm、ioc模块、封装Android httpclitent的http模块,具有快速构建文件缓存功能,无需考虑缓存文件的格式,都可以非常轻松的实现缓存,它还基于文件缓存模块实现了图片缓存功能,在android中加载的图片的时候,对oom的问题,和对加载图片错位的问题都轻易解决。他还包括了一个手机开发中经常应用的实用工具类,如日志管理,配置文件管理,android下载器模块,网络切换检测等等工具。
目前ThinkAndroid主要有以下模块:
MVC模块:实现视图与模型的分离。
ioc模块:android中的ioc模块,完全注解方式就可以进行UI绑定、res中的资源的读取、以及对象的初始化。
数据库模块:android中的orm框架,使用了线程池对sqlite进行操作。
http模块:通过httpclient进行封装http数据请求,支持异步及同步方式加载。
缓存模块:通过简单的配置及设计可以很好的实现缓存,对缓存可以随意的配置
图片缓存模块:imageview加载图片的时候无需考虑图片加载过程中出现的oom和android容器快速滑动时候出现的图片错位等现象。
配置器模块:可以对简易的实现配对配置的操作,目前配置文件可以支持Preference、Properties对配置进行存取。
日志打印模块:可以较快的轻易的是实现日志打印,支持日志打印的扩展,目前支持对sdcard写入本地打印、以及控制台打印
下载器模块:可以简单的实现多线程下载、后台下载、断点续传、对下载进行控制、如开始、暂停、删除等等。
网络状态检测模块:当网络状态改变时,对网络状态进行检测。
② android 瀑布流条目错乱解决方法
条目错乱是由于毕带每个item里图片宽高不确定导致的,所以首先需要设置
layoutManager.setGapStrategy(StaggeredGridLayoutManager.GAP_HANDLING_NONE)
这个属性,不弊塌自动刷新间隔
第一种方式就是在请求完成数据之后获取宽高,然后设置给每个item
第二种方式,在第一次加载item时,记录图片的宽高,但是这样在滑动到顶部是可能会出现顶部留白的问题,所以要重写recyclerview的onscrollstatechangelistener方法,在手卜芦加载第一行的条目时调用layoutmanager.invalidateSpanAssignments();
③ android listview viewholder 错乱怎么解决代码
在没有用viewHolder的情况下,listView表现效率低下。如果加载的数量过多则会一点点的消耗内存,直到抛出oom。开始异步加载图片会出现图片错位的问题,后来查阅资料将holder里边的图片地址和图片一一对应起来,在异步加载的回调函数中将其替换回来。
holder.thumb_image.setTag(hotel.getHotelTitlePic());
//避免图标错位,在异步加载成功后替换回来
ImageView imageView = (ImageView) listView.findViewWithTag(imageUrl);
if(imageView != null){
imageView.setImageDrawable(imageDrawable);
imageView.setTag("");
}
以上关键代码解决图片错位问题。
下面是getView()方法
public View getView(int position, View rowView, ViewGroup parent){
final
MHotelInfo hotel = this.getItem(position);
if (rowView == null) {
holder =
new ViewHolder();
LayoutInflater inflater = ((Activity)
this.getContext())
.getLayoutInflater();
rowView =
inflater.inflate(R.layout.hotel_item_view, null);
holder.typeName =
(TextView) rowView.findViewById(R.id.hotelType);
holder.thumb_image=(ImageView)rowView.findViewById(R.id.img);// 缩略图
holder.distance = (TextView) rowView.findViewById(R.id.distance);
rowView.setTag(holder);
}else{
holder = (ViewHolder)
rowView.getTag();
}
// 设置ListView的相关值
holder.thumb_image.setTag(hotel.getHotelTitlePic());
//避免图标错位,在异步加载成功后替换回来
holder.typeName.setText(hotel.getTypeName());
if(null ==
hotel.getHotelTitlePic() || hotel.getHotelTitlePic().equals("")){
//如果没有图标就显示默认图标
holder.thumb_image.setImageResource(R.drawable.downloadfalse);
}else{
//异步加载图片
imageLoader.loadDrawable(hotel.getHotelTitlePic(), new ImageCallback() {
public void imageLoaded(Drawable imageDrawable, String imageUrl) {
ImageView imageView = (ImageView) listView.findViewWithTag(imageUrl);
if(imageView != null){
imageView.setImageDrawable(imageDrawable);
imageView.setTag("");
}
}
});
}
return
rowView;
}
static class ViewHolder {
TextView
typeName;
ImageView thumb_image;
}
但是ViewHolder为什么是被设计成static类型的,本人一直没弄清楚。在网上找了些资料但是一直没能看到一个能说服我的理由。又说节省内存,保持对象的唯一性,还有说保持图片不错乱但是个人感觉都不怎么靠谱。今天我试了下将static去掉照常运行没感觉和以前有什么区别。后来我查了下static类的一些特性,首先ViewHolder是一个内部类若是static类的话则不需要依赖外部类的对象。也就是说只有static的内部类的成员变量才可以被声明成static类型,若内部类不是static类型的则不可以声明静态成员变量。不知道是不是static内部类的这个特性吸引了设计者?如果有谁清楚这个问题还请不吝赐教。
④ 苹果手机打开网页、图片错乱错位乱窜、
可能是该浏览器对该网站的兼容性存在问题、你可以唯贺尝试下使用其它浏览器会不会出现此问题、如果会的话、粗山伍那一般是网页排版出现问题了。手机QQ浏览器就不错、使用的是X5内核、对兼容性和稳定性都不错、打开网页不会出现乱码或者岩或图片不显示等问题、你可以下载来试试。
⑤ 关于Android wheelview控件的错乱问题
setVisibleItems(int count)
把count设成单数就可以了
⑥ android手机图片排序错乱问题。。。
估计你是1.jpg,2.jpg........11.jpg,12.jpg这么排列的吧租毁。
如果是基戚这样的话推荐你搏型陵把10位以下的图片改为01.jpg,02.jpg这样
⑦ iphone手机打开网页、出现图片错乱错位乱窜、现象.求助!
这个只是团拆樱电脑格式装换成手机格式的不兼塌丛容而已,可以选择在手机上换别的浏览器. 去制作手机版的网页排版,你们可能需要去研究一下手机自动跳转御隐"移动模式"的网页制作方法.
我也不是专业的,只是我自己的想法
⑧ 为什么图片在电脑里正常,在手机里看就是斜的。。手机是安卓系统
这个因为是图片枣庆的长宽数值问题,例如有些图片是 2339 × 1564, 如果图片的宽度不是4的倍数,则Android里面的显示软件就不能正常显示(图像错位,看起来像斜手岩尺的)。所以建议你先毕高在电脑上将该图片调整成宽度是4的倍数,然后复制到android的手机或者平板上,应该就可以了。
⑨ 请教Android listview 中图片错位的问题
这个其实很简单啊,你错位是你拖动ListView,Adapter里面重新调用了getView方法,然而你却加载了以前的图片,没有重新设定图片而已,你将你设置数据的方法放在最后面就行了,如果需要可以提供你的邮箱,我发个代码给你。
⑩ Android关机充电时,充电的动画和背景方框有错位,要怎样调整
Android 5.0/5.1(MTK6752 MTK6795)
充电动画位置
bootable\bootloader\lk\dev\logo
MTK6795 MTK6752修改 动画错位文件
vendor\mediatek\proprietary\external\libshowlogo
有些时候你的分辨率并非 {project}/ProjectConfig.mk里面的分辨率
如 LCM_WIDTH = 480
LCM_HEIGHT = 800
BOOT_LOGO = wvga
所以应该看看具体分辨率,对应的那个,或者每个分辨率修改一下,最好判断对应的到底是那个分辨率
cust_display.h修改对应的分辨率
[cpp] view plain
/*****************************************************************************
* Copyright Statement:
* --------------------
* This software is protected by Copyright and the information contained
* herein is confidential. The software may not be copied and the information
* contained herein may not be used or disclosed except with the written
* permission of MediaTek Inc. (C) 2008
*
* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
*
* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
*
* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
*
*****************************************************************************/
#elif defined(HD720) || defined(CU_HD720) || defined(CMCC_HD720) || defined(CT_HD720) || defined(CMCC_LTE_HD720)
// hd720 720*1280
// battery capacity rectangle
#define CAPACITY_LEFT (278) // battery capacity center
#define CAPACITY_TOP (556)
#define CAPACITY_RIGHT (441)
#define CAPACITY_BOTTOM (817)
// first number rectangle
#define NUMBER_LEFT (290) // number
#define NUMBER_TOP (386)
#define NUMBER_RIGHT (335)
#define NUMBER_BOTTOM (450)
// % rectangle
#define PERCENT_LEFT (380) // percent number_left + 2*number_width
#define PERCENT_TOP (386)
#define PERCENT_RIGHT (437)
#define PERCENT_BOTTOM (450)
// top animation part
#define TOP_ANIMATION_LEFT (278) // top animation
#define TOP_ANIMATION_TOP (100)
#define TOP_ANIMATION_RIGHT (441)
#define TOP_ANIMATION_BOTTOM (129)
// for old animation
#define BAR_LEFT (313)
#define BAR_TOP (238)
#define BAR_RIGHT (406)
#define BAR_BOTTOM (453)
#elif defined(FWVGA) || defined(CU_FWVGA) || defined(CMCC_FWVGA) || defined(CT_FWVGA) || defined(CMCC_LTE_FWVGA)
// fwvga 480*854
// battery capacity rectangle
#define CAPACITY_LEFT (172) // battery capacity center
#define CAPACITY_TOP (357)
#define CAPACITY_RIGHT (307)
#define CAPACITY_BOTTOM (573)
// first number rectangle
#define NUMBER_LEFT (172) // number
#define NUMBER_TOP (213)
#define NUMBER_RIGHT (210)
#define NUMBER_BOTTOM (267)
// % rectangle
#define PERCENT_LEFT (248) // percent number_left + 2*number_width
#define PERCENT_TOP (213)
#define PERCENT_RIGHT (296)
#define PERCENT_BOTTOM (267)
// top animation part
#define TOP_ANIMATION_LEFT (172) // top animation
#define TOP_ANIMATION_TOP (100)
#define TOP_ANIMATION_RIGHT (307)
#define TOP_ANIMATION_BOTTOM (124)
// for old animation
#define BAR_LEFT (184)
#define BAR_TOP (227)
#define BAR_RIGHT (294)
#define BAR_BOTTOM (437)
#elif defined(QHD) || defined(CU_QHD) || defined(CMCC_QHD) || defined(CT_QHD) || defined(CMCC_LTE_QHD)
// qhd 540*960
// battery capacity rectangle
#define CAPACITY_LEFT (202) // battery capacity center
#define CAPACITY_TOP (410)
#define CAPACITY_RIGHT (337)
#define CAPACITY_BOTTOM (626)
// first number rectangle
#define NUMBER_LEFT (202) // number
#define NUMBER_TOP (266)
#define NUMBER_RIGHT (240)
#define NUMBER_BOTTOM (320)
// % rectangle
#define PERCENT_LEFT (278) // percent number_left + 2*number_width
#define PERCENT_TOP (266)
#define PERCENT_RIGHT (326)
#define PERCENT_BOTTOM (320)
// top animation part
#define TOP_ANIMATION_LEFT (202) // top animation
#define TOP_ANIMATION_TOP (100)
#define TOP_ANIMATION_RIGHT (337)
#define TOP_ANIMATION_BOTTOM (124)
// for old animation
#define BAR_LEFT (235)
#define BAR_TOP (179)
#define BAR_RIGHT (305)
#define BAR_BOTTOM (340)
#elif defined(WVGA) || defined(CU_WVGA) || defined(CMCC_WVGA) || defined(CT_WVGA) || defined(CMCC_LTE_WVGA)
// default wvga 480*800
// battery capacity rectangle
#define CAPACITY_LEFT (172) // battery capacity center
#define CAPACITY_TOP (330)
#define CAPACITY_RIGHT (307)
#define CAPACITY_BOTTOM (546)
// first number rectangle
#define NUMBER_LEFT (178) // number
#define NUMBER_TOP (190)
#define NUMBER_RIGHT (216)
#define NUMBER_BOTTOM (244)
// % rectangle
#define PERCENT_LEFT (254) // percent number_left + 2*number_width
#define PERCENT_TOP (190)
#define PERCENT_RIGHT (302)
#define PERCENT_BOTTOM (244)
// top animation part
#define TOP_ANIMATION_LEFT (172) // top animation
#define TOP_ANIMATION_TOP (100)
#define TOP_ANIMATION_RIGHT (307)
#define TOP_ANIMATION_BOTTOM (124)
// for old animation
#define BAR_LEFT (209)
#define BAR_TOP (149)
#define BAR_RIGHT (271)
#define BAR_BOTTOM (282)
#elif defined(HVGA) || defined(CU_HVGA) || defined(CMCC_HVGA) || defined(CT_HVGA) || defined(CMCC_LTE_HVGA)
// hvga 320*480
[Solution]
1,充电图标的图片都在alps/mediatek/custom/common/uboot/logo目录下,在这里可以看到各种size的图片的目录
2,请将alps/mediatek/config/${project}/ProjectConfig.mk里如下部分根据实际情况作相应的修改
例如:
LCM_WIDTH = 480
LCM_HEIGHT = 800
BOOT_LOGO = wvga
3,选用不同size的LCD,需要去调整关机充电时电池图标的坐标,请在alps/mediatek/custom/${project}/uboot/inc/cust_display.h里,调整如下设置,
#define BAR_LEFT (215)
#define BAR_TOP (156)
#define BAR_RIGHT (265)
#define BAR_BOTTOM (278)
可以用windows的画图软件打开第1点里提到的图片,根据电池边框的像素来调整。
这里坐标的参考原点是左上角,背景图片的左上角是(0,0),这四个值都是相对于左上角的坐标来确定的,因此RIGHT > LEFT,BOTTOM > TOP
小技巧:1)打开画图软件,选择 查看->缩放->自定义,将图片放到到800%
2)选择 查看->缩放->显示网格
这样就可以看到一个一个的像素