نمایش ندادن عکس در picasso اندروید استودیو

گزارش
سوال

لطفا علت گزارش خود را توضیح دهید.

گزارش لغو

سلام یه سری اطلاعات رو از که متن و عکس هستش رو از xampp میگیره و در recyclerView نمایش میده، فقط مشکل اینه که متن ها رو نمایش میده و عکس رو نه، logi قرار دادم وبررسی کردم که همه اطلاعات رو به درستی دریافت میکنه. برای لود کردن عکس ها از کتابخانه picasso در DataAdapter استفاده کردم. که محل عکس ها در درایو c سیستمم قرار داره و ادرسش رو به این شکل بهش دادم localhost/Myproject/uploads/pic1.jpg  که در فراخوانیش بوسیله متد replace ای پی کارت شبکه سیستم\\\\\\\”۱۹۲٫۱۶۸٫۱٫۱۰۲\\\\\\\” رو هم با localhost عوض کردم. همه اطلاعات recyclerView رو نمایش میده بجز عکس  🙁

با چند شبیه ساز و شبیه ساز داخلی خودشم امتحان کردم

و اررور OpenGlRendrer: MAX_TEXTURE_SIZE:16384

android studio3.4.0

picasso 2.5.2

genymotion 3.0.2

recyclerView V7:28.0.0

ممنون میشم اگه کسی راه حلشو بلده

حل شده 0
اندروید - android 3 پاسخ 134 بازدید 0

درباره نویسنده

پاسخ ها ( ۳ )

  1. محمد حسین جعفری پور
    0
    ۲۴, اردیبهشت , ۱۳۹۸ در ۴:۴۴ ب.ظ

    لطفا علت گزارش خود را در رابطه با این پاسخ بنویسید.

    گزارش لغو

    سلام و درود
    عکس هایی که برای اندروید باید در نظر بگیرید نباید بیشتر از ۵۰۰ * ۵۰۰ باشد و اگر سایز عکس نیز بالا باشد برنامه نمی تواند عکس را لود کند شما با عکس های کوچکتر تست کنید مطمئن باز می شود و در برای درک بهتر توسط دوستان لطفا کد قرار گرفته و عکس را به عنوان sample قرار دهید .

    موفق و پیروز باشید.

    بهترین پاسخ
    0
    ۲۵, اردیبهشت , ۱۳۹۸ در ۳:۵۱ ب.ظ

    لطفا علت گزارش خود را در رابطه با این پاسخ بنویسید.

    گزارش لغو

    این کار رو انچان داد و سایز عکس ها رو به ۴۰۰ در ۴۰۰ رسوندم ولی بازم درست نشد و حتی از طریق متد resize خود پیکاسو هم اینکار رو انجام داد ولی بازم درست نشد

    کدها رو همینجا میزارم اگه ممکنه ممنون میشم بررسیش کنید ببینید اشکال کار کجاست.
    البته اگه زحمت نیست
    لایوت MainActivity
    ****************************************************************************************************************

    layoutnews
    ****************************************************************************************************************

    ****************************************************************************************************************
    package com.example.sqlite;

    import android.content.Context;
    import android.util.Log;

    import com.android.volley.DefaultRetryPolicy;
    import com.android.volley.Request;
    import com.android.volley.Response;
    import com.android.volley.VolleyError;
    import com.android.volley.toolbox.JsonArrayRequest;
    import com.android.volley.toolbox.Volley;

    import org.json.JSONArray;
    import org.json.JSONException;
    import org.json.JSONObject;

    import java.util.ArrayList;
    import java.util.List;

    public class ApiService {
    public static final String TAG = “ApiService”;
    Context context;

    public ApiService(Context context) {
    this.context = context;
    }

    public void getPosts(final OnReceivedPosts onReceivedPosts) {
    final JsonArrayRequest request = new JsonArrayRequest(Request.Method.GET, “http://192.168.1.100/7learn/GetPosts.php”, null, new Response.Listener() {
    @Override
    public void onResponse(JSONArray response) {
    List posts = new ArrayList();
    for (int i = 0; i < response.length(); i++) {
    Posts posts1 = new Posts();
    try {
    JSONObject jsonObject = response.getJSONObject(i);
    posts1.setId(jsonObject.getInt("Id"));
    posts1.setImage_Url(jsonObject.getString("Url_image"));
    posts1.setTitle(jsonObject.getString("Title"));
    posts1.setContent(jsonObject.getString("Content"));
    posts1.setCreadetTime(jsonObject.getString("Date"));

    posts.add(posts1);

    Log.i(TAG, "onResponse: "+posts1.getImage_Url());
    } catch (JSONException e) {
    e.printStackTrace();
    }
    }

    onReceivedPosts.OnReceived(posts);
    }
    }, new Response.ErrorListener() {
    public void onErrorResponse(VolleyError error) {
    Log.e(TAG, "onErrorResponse: " + error);
    }
    });
    request.setRetryPolicy(new DefaultRetryPolicy(1800, DefaultRetryPolicy.DEFAULT_MAX_RETRIES, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
    Volley.newRequestQueue(context).add(request);

    }

    public interface OnReceivedPosts {
    public void OnReceived(List posts);
    }
    }

    ****************************************************************************************************************
    package com.example.sqlite;

    import android.content.Context;
    import android.support.annotation.NonNull;
    import android.support.v7.widget.RecyclerView;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.ImageView;
    import android.widget.TextView;

    //import com.bumptech.glide.Glide;
    import com.squareup.picasso.Picasso;

    import java.util.List;

    public class DataAdapter extends RecyclerView.Adapter {

    Context context;
    List posts;

    public DataAdapter(Context context, List posts) {
    this.posts = posts;
    this.context = context;
    }
    @NonNull
    @Override
    public NewsViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
    View view= LayoutInflater.from(context).inflate(R.layout.layout_news, viewGroup, false);
    return new NewsViewHolder(view);
    }

    @Override
    public void onBindViewHolder(@NonNull NewsViewHolder viewHolder, int i) {

    Posts posts1 = posts.get(i);
    //Glide.with(context).load(posts1.getImage_Url().replace(“localhost”,”192.168.1.104″)).into(viewHolder.imgView_ImageNews);
    Picasso.get().load(posts1.getImage_Url().replace(“localhost”,”192.168.1.100″)).resize(100,100).centerCrop().into(viewHolder.imgView_ImageNews);

    viewHolder.txtView_Title.setText(posts1.getTitle());
    viewHolder.txtView_Content.setText(posts1.getContent());
    viewHolder.txtView_Time.setText(posts1.getCreadetTime());

    }

    @Override
    public int getItemCount() {
    return posts.size();
    }

    public class NewsViewHolder extends RecyclerView.ViewHolder {
    ImageView imgView_ImageNews;
    TextView txtView_Title, txtView_Content, txtView_Time;

    public NewsViewHolder(@NonNull View itemView) {
    super(itemView);
    imgView_ImageNews = (ImageView) itemView.findViewById(R.id.imgView_ImageNews);
    txtView_Title = (TextView) itemView.findViewById(R.id.txtView_Title);
    txtView_Content = (TextView) itemView.findViewById(R.id.txtView_Content);
    txtView_Time = (TextView) itemView.findViewById(R.id.txtView_Time);
    }
    }
    }

    ****************************************************************************************************************
    package com.example.sqlite;

    import android.app.Activity;
    import android.support.v4.app.AppComponentFactory;
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.support.v7.widget.LinearLayoutManager;
    import android.support.v7.widget.RecyclerView;

    import java.util.List;

    public class MainActivity extends AppCompatActivity {

    private SevenLearnDataBaseOpenHelper sevenLearnDataBaseOpenHelper = new SevenLearnDataBaseOpenHelper(this);
    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    ApiService apiService=new ApiService(this);

    apiService.getPosts(new ApiService.OnReceivedPosts() {
    @Override
    public void OnReceived(List posts) {

    sevenLearnDataBaseOpenHelper.addPost(posts);

    RecyclerView recyclerViewLastNews = findViewById(R.id.recyclerView_LastNews);
    DataAdapter dataAdapter=new DataAdapter(MainActivity.this,posts);
    recyclerViewLastNews.setLayoutManager(new LinearLayoutManager(MainActivity.this,LinearLayoutManager.VERTICAL,false));
    recyclerViewLastNews.setAdapter(dataAdapter);
    }
    });
    }

    }

    ****************************************************************************************************************
    package com.example.sqlite;

    public class Posts {
    int Id;
    String Image_Url;
    String Title;
    String Content;
    String CreadetTime;

    public int getIsVisited() {
    return isVisited;
    }

    public void setIsVisited(int isVisited) {
    this.isVisited = isVisited;
    }

    int isVisited = 0;

    public int getId() {
    return Id;
    }

    public void setId(int id) {
    Id = id;
    }

    public String getImage_Url() {
    return Image_Url;
    }

    public void setImage_Url(String image_Url) {
    Image_Url = image_Url;
    }

    public String getTitle() {
    return Title;
    }

    public void setTitle(String title) {
    Title = title;
    }

    public String getContent() {
    return Content;
    }

    public void setContent(String content) {
    Content = content;
    }

    public String getCreadetTime() {
    return CreadetTime;
    }

    public void setCreadetTime(String creadetTime) {
    CreadetTime = creadetTime;
    }
    }

    ****************************************************************************************************************
    package com.example.sqlite;

    import android.content.ContentValues;
    import android.content.Context;
    import android.database.SQLException;
    import android.database.sqlite.SQLiteDatabase;
    import android.database.sqlite.SQLiteOpenHelper;
    import android.util.Log;

    import java.util.ArrayList;
    import java.util.List;

    public class SevenLearnDataBaseOpenHelper extends SQLiteOpenHelper {
    private static final String TAG = “DataBaseOpenHelper”;

    private static final String DATABASE_NAME = “db_7learn”;
    private static final int DATABASE_VERSION = 1;
    private static final String POST_TABLE_NAME = “tbl_posts”;

    private static final String COLUMN_ID = “col_id”;
    private static final String COLUMN_TITLE = “col_title”;
    private static final String COLUMN_CONTENT = “col_content”;
    private static final String COLUMN_IMAGE_URL = “col_image_url”;
    private static final String COLUMN_IS_VISITED = “col_is_visited”;
    private static final String COLUMN_DATE = “col_date”;

    private static final String SQL_COMMAND_CREATE_TABLE_POSTS = “CREATE TABLE IF NOT EXISTS ” + POST_TABLE_NAME + ” ( ” + COLUMN_ID + ” INTEGER PRIMARY KEY AUTOINCREMENT, ”
    + COLUMN_TITLE + ” TEXT, ”
    + COLUMN_CONTENT + ” TEXT, ”
    + COLUMN_IMAGE_URL + ” TEXT, ”
    + COLUMN_IS_VISITED + ” INTEGER DEFAULT 0, ”
    + COLUMN_DATE + ” TEXT );”;

    Context context;

    public SevenLearnDataBaseOpenHelper(Context context) {
    super(context, DATABASE_NAME, null, DATABASE_VERSION);
    this.context = context;
    }

    @Override
    public void onCreate(SQLiteDatabase db) {

    try {
    db.execSQL(SQL_COMMAND_CREATE_TABLE_POSTS);
    } catch (SQLException e) {
    Log.e(TAG, “onCreate: ” + e.toString());
    }
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

    }

    public boolean addPost(Posts posts) {
    ContentValues contentValues = new ContentValues();
    contentValues.put(COLUMN_TITLE, posts.getTitle());
    contentValues.put(COLUMN_CONTENT, posts.getContent());
    contentValues.put(COLUMN_IMAGE_URL, posts.getImage_Url());
    contentValues.put(COLUMN_IS_VISITED, posts.getIsVisited());
    contentValues.put(COLUMN_DATE, posts.getCreadetTime());

    SQLiteDatabase sqLiteDatabase = this.getWritableDatabase();
    long isInserted = sqLiteDatabase.insert(POST_TABLE_NAME, null, contentValues);

    Log.i(TAG, “addPost: “+isInserted);
    if (isInserted > 0) {
    return true;
    } else {
    return false;
    }
    }

    public boolean addPost(List posts) {

    return false;
    }

    public List getPosts() {
    return new ArrayList();
    }

    public void setPostIsVisited(int isVisited) {
    }
    }
    ****************************************************************************************************************
    apply plugin: ‘com.android.application’

    android {
    compileSdkVersion 28
    defaultConfig {
    applicationId “com.example.sqlite”
    minSdkVersion 15
    targetSdkVersion 28
    versionCode 1
    versionName “1.0”
    testInstrumentationRunner “android.support.test.runner.AndroidJUnitRunner”

    }
    buildTypes {
    release {
    minifyEnabled false
    proguardFiles getDefaultProguardFile(‘proguard-android-optimize.txt’), ‘proguard-rules.pro’
    }
    }
    }

    dependencies {
    implementation fileTree(include: [‘*.jar’], dir: ‘libs’)
    implementation ‘com.android.support:appcompat-v7:28.0.0’
    implementation ‘com.android.support.constraint:constraint-layout:1.1.3’
    testImplementation ‘junit:junit:4.12’
    androidTestImplementation ‘com.android.support.test:runner:1.0.2’
    androidTestImplementation ‘com.android.support.test.espresso:espresso-core:3.0.2’
    implementation ‘com.android.volley:volley:1.1.1’
    implementation ‘com.android.support:recyclerview-v7:28.0.0’

    implementation ‘com.squareup.picasso:picasso:2.71828’
    implementation files(‘android-support-v4’)
    implementation ‘com.android.support:support-v4:28.0.0’
    //implementation ‘com.github.bumptech.glide:glide:4.4.0’
    //annotationProcessor ‘com.github.bumptech.glide:compiler:4.4.0’

    }

    ****************************************************************************************************************

    0
    ۲۵, اردیبهشت , ۱۳۹۸ در ۵:۵۷ ب.ظ

    لطفا علت گزارش خود را در رابطه با این پاسخ بنویسید.

    گزارش لغو

    سلام خدمت شما دوست گرامی
    معمولا پیکاسو سرعت لود خوبی نداره بهتر از گلاید برای لود استفاده کنید
    فیلم آموزشی گلاید :
    https://homeandroid.ir/glide

ارسال نظر