我的安卓手机加载不了大图片怎么回事
1、更换网速较好的网络重新加载试试;
2、更换一个时间段尝试一下;
3、备份数据后进入设置--应用与权限/更多设置--应用管理/应用程序--(全部)--中找到该软件清理该软件的数据和缓存;
4、更新手机系统;
5、备份数据后将软件卸载,在应用商店里重新搜索下载看看。
这个存放的位置是根据你的来源而定的。一般是放在sdcard下的某个目录下的,我基本看明白你写的需求。我来给你说下思路:服务端(android手机)这边需要写个工具类,来遍历SD卡下的文件,只显示jpg和png的。主类中有个按钮来添加,还有一个按钮是用来上传,然后写个监听,用来接收服务端发回的消息。文件的传输就不用我细说了吧服务端这边写个监听来接收客户端发来的消息,保存发过来的数据流。至于手机上能显示这张,只要在写个imageview,把资源加载上就ok啦,你可以去网上搜索一下“sd上的文件上传”,有很多类似的文章和代码,可供学习的,有什么不懂的再问吧^_^
e站加载卡顿解决方法
加载不出来可能是权限不够、页面崩溃或者是自己的网络超时。
e站为什么加载不出来 安卓白色e站只有一页加载不出来解决教程1
很多人显示只能是一页的,这个是权限不够的,首页也是显示不出来的。
还有一些其他的原因:
可能是加载超时,如果是网络有问题,分别试下流量和WIFI,看是否能上去,1个能上1个不能上就是网络问题。如果2个都不行,上不去,就不是你的事了,是网站服务器挂掉了。
e站为什么加载不出来 安卓白色e站只有一页加载不出来解决教程2
你的ip地址被禁了。
说你登陆了危害性比较大的界面。ip被禁持续时间还有12个小时6分钟。估计过了这上面说的时间你就能上了。
NS出现问题。e站DNS出现问题,就会导致突然进不去了,可以把DNS改为8888,下一行改为8844如果还不行,就刷新网站,或者如果用手机,可以下个APP在手机上就行了。
1、实现原理:用户打开相册或相机选择相片后,相片经过压缩并设置在控件上,在本地sd卡存一份(如果有的话,没有则内部存储,所以还
需要判断用户是否挂载了sd卡),然后在服务器上存储一份该,当下次再次启动应用时,会默认去sd卡加载该,如果本地没有,再会去联网请求
2、使用了picasso框架以及自定义BitmapUtils工具类
3、记得加上相关权限
<uses-permission android:name="androidpermissionINTERNET"></uses-permission>
<uses-permission android:name="androidpermissionCAMERA"/>
<uses-permission android:name="androidpermissionWRITE_EXTERNAL_STORAGE"></uses-permission>
/
public class MainActivity extends AppCompatActivity implements ViewOnClickListener {
private ImageView iv;//要设置的头像
private Button btn_photo;//调用相册按钮
private Button btn_camera;//调用相机按钮
@Override
protected void onCreate(Bundle savedInstanceState) {
superonCreate(savedInstanceState);
setContentView(Rlayoutactivity_main);
iv=(ImageView) findViewById(Ridiv);
btn_photo = (Button) findViewById(Ridbtn_photo);
btn_camera = (Button) findViewById(Ridbtn_camera);
btn_photosetOnClickListener(this);
btn_camerasetOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (vgetId()) {
case Ridbtn_photo://打开系统相册
Intent intent=new Intent(IntentACTION_PICK, MediaStoreImagesMediaEXTERNAL_CONTENT_URI);
startActivityForResult(intent,100);
break;
case Ridbtn_camera://打开系统相机
Intent intent2=new Intent(MediaStoreACTION_IMAGE_CAPTURE);
startActivityForResult(intent2,200);
break;
}
}
@RequiresApi(api = BuildVERSION_CODESKITKAT)
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
superonActivityResult(requestCode, resultCode, data);
if(requestCode==100&&resultCode==RESULT_OK&&data!=null){//系统相册
Uri imageData = datagetData();
String path=getPath(imageData);
Bitmap bitmap = BitmapFactorydecodeFile(path);
Bitmap bitmap1 = BitmapUtilszoom(bitmap, ivgetWidth(), ivgetHeight());
Bitmap bitmap2 = BitmapUtilscircleBitmap(bitmap1);
//加载显示
ivsetImageBitmap(bitmap2);
//bitmap上传到服务器
//bitmap保存到本地
saveImage(bitmap2);
}else if(requestCode==200&&resultCode==RESULT_OK&&data!=null){//系统相机
Bitmap bitmap = (Bitmap) datagetExtras()get("data");
BitmapUtilszoom(bitmap,ivgetWidth(),ivgetHeight());
bitmap=BitmapUtilscircleBitmap(bitmap);
//加载显示
ivsetImageBitmap(bitmap);
//bitmap上传到服务器
//bitmap保存到本地
saveImage(bitmap);
}
}
/
数据的存储。(5种)
Bimap:内存层面的对象。
存储--->内存:
BitmapFactorydecodeFile(String filePath);
BitmapFactorydecodeStream(InputStream is);
内存--->存储:
bitmapcompress(BitmapCompressFormatPNG,100,OutputStream os);
/
private void saveImage(Bitmap bitmap) {
File filesDir;
if(EnvironmentgetExternalStorageState()equals(EnvironmentMEDIA_MOUNTED)){//判断sd卡是否挂载
//路径1:storage/sdcard/Android/data/包名/files
filesDir = thisgetExternalFilesDir("");
}else{//手机内部存储
//路径:data/data/包名/files
filesDir = thisgetFilesDir();
}
FileOutputStream fos = null;
try {
File file = new File(filesDir,"iconpng");
fos = new FileOutputStream(file);
bitmapcompress(BitmapCompressFormatPNG, 100,fos);
} catch (FileNotFoundException e) {
eprintStackTrace();
}finally{
if(fos != null){
try {
fosclose();
} catch (IOException e) {
eprintStackTrace();
}
}
}
}
//如果本地有,就不需要再去联网去请求
private boolean readImage() {
File filesDir;
if(EnvironmentgetExternalStorageState()equals(EnvironmentMEDIA_MOUNTED)){//判断sd卡是否挂载
//路径1:storage/sdcard/Android/data/包名/files
filesDir = getExternalFilesDir("");
}else{//手机内部存储
//路径:data/data/包名/files
filesDir = getFilesDir();
}
File file = new File(filesDir,"iconpng");
if(fileexists()){
//存储--->内存
Bitmap bitmap = BitmapFactorydecodeFile(filegetAbsolutePath());
ivsetImageBitmap(bitmap);
return true;
}
return false;
}
@RequiresApi(api = BuildVERSION_CODESKITKAT)
private String getPath(Uri uri) {
int sdkVersion = BuildVERSIONSDK_INT;
//高于442的版本
if (sdkVersion >= 19) {
Loge("TAG", "uri auth: " + urigetAuthority());
if (isExternalStorageDocument(uri)) {
String docId = DocumentsContractgetDocumentId(uri);
String[] split = docIdsplit(":");
String type = split[0];
if ("primary"equalsIgnoreCase(type)) {
return EnvironmentgetExternalStorageDirectory() + "/" + split[1];
}
} else if (isDownloadsDocument(uri)) {
final String id = DocumentsContractgetDocumentId(uri);
final Uri contentUri = ContentUriswithAppendedId(Uriparse("content://downloads/public_downloads"),
LongvalueOf(id));
return getDataColumn(this, contentUri, null, null);
} else if (isMediaDocument(uri)) {
final String docId = DocumentsContractgetDocumentId(uri);
final String[] split = docIdsplit(":");
final String type = split[0];
Uri contentUri = null;
if ("image"equals(type)) {
contentUri = MediaStoreImagesMediaEXTERNAL_CONTENT_URI;
} else if ("video"equals(type)) {
contentUri = MediaStoreVideoMediaEXTERNAL_CONTENT_URI;
} else if ("audio"equals(type)) {
contentUri = MediaStoreAudioMediaEXTERNAL_CONTENT_URI;
}
final String selection = "_id=";
final String[] selectionArgs = new String[]{split[1]};
return getDataColumn(this, contentUri, selection, selectionArgs);
} else if (isMedia(uri)) {
String[] proj = {MediaStoreImagesMediaDATA};
Cursor actualimagecursor = thismanagedQuery(uri, proj, null, null, null);
int actual_image_column_index = actualimagecursorgetColumnIndexOrThrow(MediaStoreImagesMediaDATA);
actualimagecursormoveToFirst();
return actualimagecursorgetString(actual_image_column_index);
}
} else if ("content"equalsIgnoreCase(urigetScheme())) {
// Return the remote address
if (isGooglePhotosUri(uri))
return urigetLastPathSegment();
return getDataColumn(this, uri, null, null);
}
// File
else if ("file"equalsIgnoreCase(urigetScheme())) {
return urigetPath();
}
return null;
}
/
uri路径查询字段
@param context
@param uri
@param selection
@param selectionArgs
@return
/
public static String getDataColumn(Context context, Uri uri, String selection, String[] selectionArgs) {
Cursor cursor = null;
final String column = "_data";
final String[] projection = {column};
try {
cursor = contextgetContentResolver()query(uri, projection, selection, selectionArgs, null);
if (cursor != null && cursormoveToFirst()) {
final int index = cursorgetColumnIndexOrThrow(column);
return cursorgetString(index);
}
} finally {
if (cursor != null)
cursorclose();
}
return null;
}
private boolean isExternalStorageDocument(Uri uri) {
return "comandroidexternalstoragedocuments"equals(urigetAuthority());
}
public static boolean isDownloadsDocument(Uri uri) {
return "comandroidprovidersdownloadsdocuments"equals(urigetAuthority());
}
public static boolean isMediaDocument(Uri uri) {
return "comandroidprovidersmediadocuments"equals(urigetAuthority());
}
public static boolean isMedia(Uri uri) {
return "media"equals(urigetAuthority());
}
/
@param uri The Uri to check
@return Whether the Uri authority is Google Photos
/
public static boolean isGooglePhotosUri(Uri uri) {
return "comgoogleandroidappsphotoscontent"equals(urigetAuthority());
}
/
判断本地是否有该,没有则去联网请求
/
@Override
protected void onResume() {
superonResume();
if(readImage()){
return;
}
}
}
//BitmapUtils工具类public class BitmapUtils { /
该方法用于将进行圆形处理
/ public static Bitmap circleBitmap(Bitmap source){ //默认只对宽进行处理 int width=sourcegetWidth(); Bitmap bitmap=BitmapcreateBitmap(width,width,BitmapConfigARGB_8888); Canvas canvas=new Canvas(bitmap); Paint paint=new Paint(); //设置抗锯齿 paintsetAntiAlias(true); canvasdrawCircle(width/2,width/2,width/2,paint); paintsetXfermode(new PorterDuffXfermode(PorterDuffModeSRC_IN)); canvasdrawBitmap(source,0,0,paint); return bitmap; } / 该方法用于压缩处理,注意width、height参数的类型必须是float / public static Bitmap zoom(Bitmap source,float width,float height){ Matrix matrix=new Matrix(); //进行压缩处理 matrixpostScale(width/sourcegetWidth(),height/sourcegetHeight()); Bitmap bitmap = BitmapcreateBitmap(source, 0, 0, sourcegetWidth(), sourcegetHeight(), matrix, false); return bitmap; }}
以上所述是小编给大家介绍的Android实现调用系统图库与相机设置头像并保存在本地及服务器 ,希望对大家有所帮助
一、手机上网时页面上的显示不出来,可能与您的网络状况和手机缓存容量有关,请您使用浏览器中的“重新载入”选项重新载入页面或先选择“清理缓存”选项;
二、也可能因为网络状况造成了数据传输不完整的情况,您反复刷新几次一般都可以解决。
1、使用gridview
2、直接使用listview,每个item中包含两个或者三个bitmap,然后刷新时一次加载2的倍数或者3的倍数的元素
3、下拉刷新,加载更多直接参考pulltorefresh
0条评论