Android 는 오픈 소스 프레임 워 크 ANDROID-IMAGE-INDICATOR 를 사용 하여 이미지 순환 배 치 를 실현 합 니 다.

9425 단어 Android사진 윤파
이전 블 로그 에 서 는 사진 윤 방 의 실현 방식 에 대해 소개 하 였 는데 각각(하이퍼링크 포함)이다.
1、《 Android 에서 ViewFlipper 를 사용 하여 화면 전환
2、《 Android 에 서 는 ViewPager 를 사용 하여 화면 페이지 전환 과 페이지 순환 방송 효 과 를 실현 합 니 다.
3、《 Android 에 서 는 ImageView Switcher 를 사용 하여 그림 전환 라운드 내 비게 이 션 효 과 를 실현 합 니 다.
오늘 은 GitHub 의 오픈 소스 프로젝트 인 안 드 로 이 드-image-indicator 를 사용 하여 앱 자체 사진 의 윤 방 과 인터넷 사진 을 불 러 와 윤 방 을 간단하게 실현 합 니 다.

1.GitHub 에서 항목 다운로드
GitHub 주소:https://github.com/panxw/android-image-indicator
그 중에서 간단 한 사용 예 시 를 소개 하 였 으 니,여러분 은 보 실 수 있 습 니 다.

2.의존 패키지 가 져 오기
(1)저 는 AndroidStudio 2,2 를 사용 하여 Import Module 을 통 해 다운로드 파일 에 있 는 library 를 가 져 와 의존 팩 을 가 져 오 려 고 했 지만 이번 다운로드 항목 은 Maven 을 사용 하여 구축 되 었 습 니 다.
가 져 오 는 중 오류 알림:Error:(2,0)Plugin with id'com.github.dcendents.android-maven'not found.여러 가지 해결 방안 을 시 도 했 지만 의존 패키지 가 져 오기 문 제 를 효과적으로 해결 할 수 없습니다.두 번 째 방법 으로 가 져 오 는 것 을 권장 합 니 다.
(2)build.gradle(Module.app)에 dependencies 에서 다음 코드 를 직접 추가 합 니 다.
compile 'com.panxw.imageindicator:library:1.0.2'
다음 예제 추가:

추가 후 인터페이스 에 있 는 힌트 를 클릭 하여 아래 와 동기 화하 면 됩 니 다.
3.로 딩 APP 자체 사진 시연
(1)레이아웃 레이아웃 파일 은 다음 과 같 습 니 다.

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 xmlns:tools="http://schemas.android.com/tools"
 android:id="@+id/activity_main"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 tools:context="com.mly.panhouye.demo.MainActivity">
 <com.panxw.android.imageindicator.ImageIndicatorView
 android:id="@+id/indicate_view"
 android:layout_width="match_parent"
 android:layout_height="match_parent">
 </com.panxw.android.imageindicator.ImageIndicatorView>
</RelativeLayout>
(2)자바 구현 코드 는 다음 과 같다.

package com.mly.panhouye.demo;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import com.panxw.android.imageindicator.AutoPlayManager;
import com.panxw.android.imageindicator.ImageIndicatorView;
import java.util.ArrayList;
import java.util.List;

public class MainActivity extends AppCompatActivity {
 ImageIndicatorView indicate_view;
 @Override
 protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_main);
 indicate_view = (ImageIndicatorView) findViewById(R.id.indicate_view);
 local();
 }
 //        
 public void local() {
 //       ,      ID
 final Integer[] resArray = new Integer[] {R.mipmap.a1, R.mipmap.a2,
  R.mipmap.a3, R.mipmap.a4};
 //            
 indicate_view.setupLayoutByDrawable(resArray);
 //      
// indicate_view.setIndicateStyle(ImageIndicatorView.INDICATE_ARROW_ROUND_STYLE);
 indicate_view.setIndicateStyle(ImageIndicatorView.INDICATE_USERGUIDE_STYLE);
 //     
 indicate_view.show();
 final AutoPlayManager autoBrocastManager = new AutoPlayManager(indicate_view);
 //        
 autoBrocastManager.setBroadcastEnable(true);
 //autoBrocastManager.setBroadCastTimes(5);//loop times
 //           
 autoBrocastManager.setBroadcastTimeIntevel(3000, 3000);
 //      
 autoBrocastManager.loop();
 }
}
4.네트워크 그림 불 러 오기
(1)우선 자바 에서 NetworkImageIndicatorView 를 사용자 정의 합 니 다.class
이 가운데 네트워크 그림 을 이미지 뷰 에 불 러 오 는 데 네트워크 통신 프레임 워 크-VolLey 를 사용 했다.여 기 는 그 중의 ImageRequest 를 주로 사용 합 니 다.
ImageRequest 의 구조 함 수 는 여섯 개의 인 자 를 받 는데 각각 다음 과 같은 의 미 를 나타 낸다.
첫 번 째 매개 변 수 는 그림 의 URL 주소 입 니 다.이것 은 설명 할 필요 가 없습니다.
두 번 째 매개 변 수 는 그림 이 성공 적 으로 리 셋 을 요청 하 는 것 입 니 다.여기 서 돌아 오 는 Bitmap 매개 변 수 를 ImageView 에 설정 합 니 다.
세 번 째 네 번 째 매개 변 수 는 그림 의 최대 너비 와 높이 를 지정 하 는 데 사 용 됩 니 다.지정 한 네트워크 그림 의 너비 나 높이 가 이곳 의 최대 치보다 크 면 그림 을 압축 하고 0 으로 지정 하면 그림 이 아무리 크 더 라 도 압축 하지 않 는 다 는 뜻 입 니 다.
다섯 번 째 매개 변 수 는 그림 의 색상 속성 을 지정 하 는 데 사 용 됩 니 다.Bitmap.Config 의 상수 중 ARGB8888 가장 좋 은 색상 속성 을 보 여 줍 니 다.그림 픽 셀 당 4 바이트 크기 를 차지 하고 RGB565 는 각 그림 의 픽 셀 이 2 바이트 크기 를 차지 한 다 는 것 을 나타 낸다.
여섯 번 째 매개 변 수 는 그림 요청 이 실 패 했 을 때 이미지 뷰 에 기본 그림 을 표시 합 니 다.

package com.mly.panhouye.demo;
import android.content.Context;
import android.graphics.Bitmap;
import android.util.AttributeSet;
import android.widget.ImageView;
import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.ImageRequest;
import com.android.volley.toolbox.Volley;
import com.panxw.android.imageindicator.ImageIndicatorView;
import java.util.List;
/**
 * Created by panchengjia on 2017/1/10 0010.
 */
public class NetworkImageIndicatorView extends ImageIndicatorView {
 public NetworkImageIndicatorView(Context context, AttributeSet attrs) {
 super(context, attrs);
 }
 public NetworkImageIndicatorView(Context context) {
 super(context);
 }
 public void setupLayoutByImageUrl(List<String> urlList) {
 for(String url: urlList) {
 final ImageView imageView = new ImageView(getContext());
 //load image from url and set to imageView, you can use UIL or Volley to do this work
 //      Volley
 //        
 RequestQueue queue = Volley.newRequestQueue(getContext());
 ImageRequest request = new ImageRequest(url, new Response.Listener<Bitmap>() {
 @Override
 public void onResponse(Bitmap bitmap) {
  imageView.setImageBitmap(bitmap);
 }
 }, 0, 0, Bitmap.Config.RGB_565, new Response.ErrorListener() {
 @Override
 public void onErrorResponse(VolleyError volleyError) {
  System.out.println(volleyError);
 }
 });
 queue.add(request);
 addViewItem(imageView);
 }
 }
}

(2)레이아웃 레이아웃 디 스 플레이 파일 은 다음 과 같 습 니 다.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 xmlns:tools="http://schemas.android.com/tools"
 android:id="@+id/activity_main"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 android:orientation="vertical"
 tools:context="com.mly.panhouye.demo.MainActivity">
 
 <com.mly.panhouye.demo.NetworkImageIndicatorView
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 android:id="@+id/internet_iv">
 </com.mly.panhouye.demo.NetworkImageIndicatorView>
 
</LinearLayout>
(3)자바 구현 코드 는 다음 과 같다.

package com.mly.panhouye.demo;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import com.panxw.android.imageindicator.AutoPlayManager;
import com.panxw.android.imageindicator.ImageIndicatorView;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends AppCompatActivity {
 NetworkImageIndicatorView internet_iv;
 @Override
 protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_main);
 internet_iv= (NetworkImageIndicatorView) findViewById(R.id.internet_iv);
 internet();
 }
 public void internet(){
 final List<String> urlList= new ArrayList<String>();
 urlList.add("http://r.photo.store.qq.com/psb?/V12kkHqD1CWRD4/1*CDpMdmLbUg.gga4PxHTxZUSZqZ1ei76FIDnprasXI!/r/dKEAAAAAAAAA");
 urlList.add("http://r.photo.store.qq.com/psb?/V12kkHqD1CWRD4/40Y896PFEJ0ZdQyzrd0Nar48yCs5g9lkH3jI7zSRCQQ!/r/dKEAAAAAAAAA");
 urlList.add("http://r.photo.store.qq.com/psb?/V12kkHqD1CWRD4/7oqQQKh5D5OKezdyC0geEGaTQjJirH8.GbQ9mY13aIY!/r/dKAAAAAAAAAA");
 internet_iv.setupLayoutByImageUrl(urlList);
 internet_iv.show();
 //      
 AutoPlayManager autoBrocastManager = new AutoPlayManager(internet_iv);
 autoBrocastManager.setBroadcastEnable(true);
 autoBrocastManager.setBroadCastTimes(5);//      
 autoBrocastManager.setBroadcastTimeIntevel(500, 500);
 autoBrocastManager.loop();
 }
}
오픈 소스 프레임 워 크 를 사용 하여 실현 하 는 것 이 편리 합 니 다.이번 시연 은 기능 을 실현 하기 위해 서 입 니 다.여러분 은 시간 이 있 으 면 인터페이스 를 최적화 시 켜 자신 이 원 하 는 결 과 를 실현 할 수 있 습 니 다.(인터넷 로 딩 에서 본인 의 옥 조 를 인용 하 였 습 니 다.감상 해 주 셔 서 감사합니다.)
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기