Android 는 Picasso 를 사용 하여 네트워크 그림 을 불 러 오 는 등 비례 크기 를 조정 하 는 방법 을 사용 합 니 다.

2072 단어
안 드 로 이 드 그림 을 불 러 올 때 핸드폰 화면 이 제한 되 어 많은 큰 그림 을 불 러 올 때 우 리 는 고정된 너비, 등 비례 에 따라 높이 를 조정 하여 그림 의 크기 비례 를 해당 하 는 크기 로 조정 하 라 고 요구 하지만 그림 은 변형 되 지 않 았 다.분명히 android: scale Type 에 따라 실현 할 수 없습니다. 제한 이 많 기 때문에 스스로 알고리즘 을 써 야 합 니 다.
Picasso 를 통 해 크기 조정 하기
사실 피 카 소 는 이런 방법 을 제공 했다.구체 적 으로 Transformation 을 표시 하 는 transformation 방법 입 니 다.
(1) 네트워크 나 로 컬 그림 의 너비 (2) 필요 한 목표 너비 (3) 비례 에 따라 목표 의 높이 (4) 목표 의 너비 에 따라 새 그림 을 만 듭 니 다.

Transformation transformation = new Transformation() {
    @Override
    public Bitmap transform(Bitmap source) {
      int targetWidth = mImg.getWidth();
      LogCat.i("source.getHeight()="+source.getHeight());
       LogCat.i("source.getWidth()="+source.getWidth());
       LogCat.i("targetWidth="+targetWidth);
      if(source.getWidth()==0){
        return source;
      }
      //           ,     
      if(source.getWidth() 
 

이후 Picasso 에 transform 설정

Picasso.with(mContext)
      .load(imageUrl)
      .placeholder(R.mipmap.zhanwei)
      .error(R.mipmap.zhanwei)
      .transform(transformation)
      .into(viewHolder.mImageView);

Transformation 이것 은 Picasso 의 매우 강력 한 기능 입 니 다. load 그림 - > into ImageView 중간 에 이 과도 한 그림 을 일련의 변환 할 수 있 습 니 다.예 를 들 어 그림 고 스 모호, 원 각 추가, 회색 처리, 원형 사진 등 은 모두 Transformation 을 통 해 완성 할 수 있다.
참고 글:https://stackoverflow.com/questions/21889735/resize-image-to-full-width-and-variable-height-with-picasso
총결산
위 에서 말 한 것 은 소 편 이 소개 한 안 드 로 이 드 가 Picasso 를 사용 하여 네트워크 그림 을 불 러 오 는 등 비례 크기 를 조정 하 는 실현 방법 입 니 다. 여러분 에 게 도움 이 되 기 를 바 랍 니 다. 궁금 한 점 이 있 으 시 면 댓 글 을 남 겨 주세요. 소 편 은 제때에 답 해 드 리 겠 습 니 다!

좋은 웹페이지 즐겨찾기