Изображение поворачивается при использовании залпа в Android - PullRequest
0 голосов
/ 05 июля 2019

У меня есть следующий код, который использует сетевой образ залпа.

Проблема, с которой я сталкиваюсь, когда я снимаю изображение с реального устройства, помещает повернутое изображение в представление изображения.

IИнтересно, что я делаю не так в следующей реализации.Я использую последнюю библиотеку залпов, которая является 1.1.1.

.xml code

 <com.moapy.xxx.xxx.CustomNetworkImageView
            android:layout_width="100dp"
            android:layout_height="100dp"
            android:id="@+id/imageViewUser"
            android:layout_gravity="start"
            android:adjustViewBounds="true"
            android:scaleType="centerCrop"
            android:background="@color/colorAccent"
            android:contentDescription="@string/description" />

CustomNetworkImageView.java

import com.android.volley.toolbox.ImageLoader;
import com.android.volley.toolbox.NetworkImageView;

public class CustomNetworkImageView extends NetworkImageView {

    private Bitmap mLocalBitmap;

    private boolean mShowLocal;

    public void setLocalImageBitmap(Bitmap bitmap) {
        if (bitmap != null) {
            mShowLocal = true;
        }
        this.mLocalBitmap = bitmap;
        requestLayout();
    }

    @Override
    public void setImageUrl(String url, ImageLoader imageLoader) {
        mShowLocal = false;
        super.setImageUrl(url, imageLoader);
    }

    public CustomNetworkImageView(Context context) {
        this(context, null);
    }

    public CustomNetworkImageView(Context context, AttributeSet attrs) {
        this(context, attrs, 0);
    }

    public CustomNetworkImageView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
    }

    @Override
    protected void onLayout(boolean changed, int left, int top, int right, int bottom) {

        super.onLayout(changed, left, top, right, bottom);
        if (mShowLocal) {
            setImageBitmap(mLocalBitmap);
        }
    }
}

код активности.java

imageViewUser = (CustomNetworkImageView) findViewById(R.id.imageViewUser);

MultipartRequest multipartRequest = new MultipartRequest(Config.USER_IMAGE_URL,
                null, NetworkUtil.mimeType, multipartBody, new Response.Listener<NetworkResponse>() {
            @Override
            public void onResponse(NetworkResponse response) {
                try {
                    JSONObject jsonObject = new JSONObject(new String(response.data, "UTF-8"));
                    String imagePath = jsonObject.getString("imagePath");
                    ImageLoader imageLoader = CustomVolleyRequest.getInstance(getApplicationContext()).getImageLoader();
                    imageLoader.get(Config.IMAGE_PATH_URL + "/" + imagePath, ImageLoader.getImageListener(imageViewUser, R.drawable.image, R.drawable.blank_profile ));
                    imageViewUser.setImageUrl(Config.IMAGE_PATH_URL + "/" + imagePath, imageLoader);

                    imageLoader.get(Config.IMAGE_PATH_URL + "/" + imagePath, ImageLoader.getImageListener(imageViewUserDrawer, R.drawable.image, R.drawable.blank_profile));
                    imageViewUserDrawer.setImageUrl(Config.IMAGE_PATH_URL + "/" + imagePath, imageLoader);

                    SharedPreferences.Editor editor = getSharedPreferences(Config.SHARED_PREF_NAME, Context.MODE_PRIVATE).edit();
                    editor.putString(Config.USERIMAGEPATH_SHARED_PREF, imagePath);
                    editor.apply();
                } catch (UnsupportedEncodingException | JSONException e) {
                    e.printStackTrace();
                }
            }
        }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                Toast.makeText(context, R.string.upload_failed + "" + error.toString(), Toast.LENGTH_SHORT).show();
            }
        });
        multipartRequest.setRetryPolicy(new DefaultRetryPolicy(DefaultRetryPolicy.DEFAULT_TIMEOUT_MS, DefaultRetryPolicy.DEFAULT_MAX_RETRIES, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
        CustomVolleyRequest.getInstance(getApplicationContext()).getRequestQueue().add(multipartRequest);
...