Android 는 오픈 소스 프레임 워 크 ANDROID-IMAGE-INDICATOR 를 사용 하여 이미지 순환 배 치 를 실현 합 니 다.
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();
}
}
오픈 소스 프레임 워 크 를 사용 하여 실현 하 는 것 이 편리 합 니 다.이번 시연 은 기능 을 실현 하기 위해 서 입 니 다.여러분 은 시간 이 있 으 면 인터페이스 를 최적화 시 켜 자신 이 원 하 는 결 과 를 실현 할 수 있 습 니 다.(인터넷 로 딩 에서 본인 의 옥 조 를 인용 하 였 습 니 다.감상 해 주 셔 서 감사합니다.)이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Bitrise에서 배포 어플리케이션 설정 테스트하기이 글은 Bitrise 광고 달력의 23일째 글입니다. 자체 또는 당사 등에서 Bitrise 구축 서비스를 사용합니다. 그나저나 며칠 전 Bitrise User Group Meetup #3에서 아래 슬라이드를 발표했...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.