Долгая загрузка екрана.
Добавлено: 22 май 2015, 01:07
Есть преложение. С 10 екранами. При переходе на некоторьі период загрузки очень блинньій( прока грузитса ченьій екран). Как можна ето исправить? или хотябьі зделать чтоб верхняя шапка загрузилась а остальное постипенно подгружалось?
Вот код екрана которьй дольше всего грузитса.
Вот код екрана которьй дольше всего грузитса.
Код: Выделить всё
package com.example.bomba;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.TimeUnit;
import com.squareup.picasso.Picasso;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.AdapterView.OnItemClickListener;
public class Galery extends Activity{
ImageView qq;
Picasso pic;
static ImageAapter adapter;
private Context context;
public static final String[] imagesUrls = {
"http://bomba.vn.ua/sites/default/files/styles/200x200/public/_dsc0072.jpg?itok=ORAFJotr",
"http://bomba.vn.ua/sites/default/files/styles/200x200/public/_dsc0104.jpg?itok=Peitxl1w",
};
final String LOG_TAG = "myLogs";
ListView mLvImages;
ImageView img;
Button btn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.galery);
mLvImages = (ListView) findViewById(R.id.lvImages);
img =(ImageView)findViewById(R.id.bigimg);
img.setVisibility(View.INVISIBLE);
adapter =null;
String[] str = null;
Intent intent = getIntent();
String dbqeru = intent.getStringExtra("dbqeru");
MyTask mt = new MyTask();
mt.execute(dbqeru);
try {
str= mt.get();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ExecutionException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if (str != null) {
ImageAapter adapter = new ImageAapter(this, str);
mLvImages.setAdapter(adapter);
}
mLvImages.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
img.setVisibility(View.VISIBLE);
mLvImages.setVisibility(View.INVISIBLE);
pic.with(context).load(imagesUrls[position]).into(img);
Log.d(LOG_TAG, "itemClick: position = " + position + ", id = "
+ id);
Log.d(LOG_TAG, imagesUrls[position]);
}
});
img.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
img.setVisibility(View.INVISIBLE);
mLvImages.setVisibility(View.VISIBLE);
}
});
}
class ImageAapter extends ArrayAdapter<String> {
LayoutInflater mInflater;
Picasso mPicasso;
public ImageAapter(Context context, String[] imagesurls) {
super(context, R.layout.list_item, imagesurls);
mInflater = LayoutInflater.from(context);
mPicasso = Picasso.with(context);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = convertView;
if (view == null) {
view = mInflater.inflate(R.layout.list_item, parent, false);
}
ImageView imageView = (ImageView) view.findViewById(R.id.imageView);
mPicasso.load(getItem(position)).resizeDimen(R.dimen.image_size, R.dimen.image_size). centerInside().into(imageView);
return view;
}
}
}
class MyTask extends AsyncTask<String, Void, String[]> {
final String LOG_TAG = "myLogs";
@Override
protected void onPreExecute() {
super.onPreExecute();
}
protected String[] doInBackground(String... params) {
String[] photo_arr = null;
try {
TimeUnit.SECONDS.sleep(1);
try {
Class.forName("com.mysql.jdbc.Driver");
Log.d(LOG_TAG, "--- Driver is conected!!! ---");
} catch (ClassNotFoundException e) {
Log.d(LOG_TAG, "--- Driver is NOT conected!!! ---");
Log.d(LOG_TAG,e.toString());
e.printStackTrace();
return null;
}
Connection conn = null;
String url1 = "jdbc:mysql://sql5.freesqldatabase.com:3306/sql578111";
String name = "sql578111";
String password = "vH3!fG9%";
int i=0;
String ss;
try {
conn = DriverManager.getConnection(url1, name, password);
// Toast.makeText(this, "есть подключение к БД", Toast.LENGTH_SHORT).show();
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT big FROM photo_travhol");
rs.next();
ss=rs.getString("big");
photo_arr[0]=ss;
Log.d(LOG_TAG,rs.getString("big"));
Log.d(LOG_TAG,"есть подключение к БД");
// while(rs.next()){
// photo_arr[i]=rs.getString("big");
// i++;
// }
// rs.next();
// photo_arr[i]=rs.getString("big");
// Log.d(LOG_TAG,rs.getString("big"));
Log.d(LOG_TAG,"есть подключение к БД");
} catch (java.sql.SQLException e) {
Log.d(LOG_TAG,e.toString());
// Toast.makeText(this, "ошибка подключения к БД", Toast.LENGTH_SHORT).show();
Log.d(LOG_TAG,"ошибка подключения к БД");
}
if (conn == null) {
// Toast.makeText(this, "нет данных БД", Toast.LENGTH_SHORT).show();
Log.d(LOG_TAG,"нет данных БД");
} else {
// Toast.makeText(this, "есть данные!", Toast.LENGTH_SHORT).show();
Log.d(LOG_TAG,"есть данные!");
}
} catch (InterruptedException e) {
e.printStackTrace();
}
return photo_arr;
}
@Override
protected void onPostExecute(String[] result) {
super.onPostExecute(result);
}
}