91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

資源簡介

仿抖音流的圖片瀏覽app,可以不斷下滑加載高興圖。預加載屏幕下方的圖片。點擊可看大圖,可保存到本地。

<delect id="1tgbk"></delect>
@BindContentView(R.layout.fragment_recycler)
class UnsplashPhotosFragment : BaseFragment(), UnsplashPhotosItemFactory.UnsplashPhotosItemEventListener, OnLoadMoreListener, androidx.swiperefreshlayout.widget.SwipeRefreshLayout.OnRefreshListener {
private var adapter: AssemblyRecyclerAdapter? = null
private var pageIndex = 1
private var backgroundImageUri: String? = null
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
recycler_recyclerFragment_content.layoutManager = androidx.recyclerview.widget.LinearLayoutManager(context)
refresh_recyclerFragment.setOnRefreshListener(this)
if (adapter != null) {
recycler_recyclerFragment_content.adapter = adapter
} else {
refresh_recyclerFragment.post { onRefresh() }
}
}
override fun onUserVisibleChanged(isVisibleToUser: Boolean) {
if (isVisibleToUser) {
changeBackground(backgroundImageUri)
}
}
private fun changeBackground(imageUri: String?) {
this.backgroundImageUri = imageUri
backgroundImageUri?.let { EventBus.getDefault().post(ChangeMainPageBgEvent(it)) }
}
private fun loadData(pageIndex: Int) {
this.pageIndex = pageIndex
NetServices.unsplash().listPhotos(pageIndex).enqueue(LoadDataCallback(this, pageIndex))
}
override fun onClickImage(position: Int, image: UnsplashImage, optionsKey: String) {
val activity = activity ?: return
var finalOptionsKey: String? = optionsKey
// 含有這些信息時,說明這張圖片不僅僅是縮小,而是會被改變,因此不能用作loading圖了
if (finalOptionsKey!!.contains("Resize")
|| finalOptionsKey.contains("ImageProcessor")
|| finalOptionsKey.contains("thumbnailMode")) {
finalOptionsKey = null
}
@Suppress("UNCHECKED_CAST")
val images = adapter!!.dataList as List<UnsplashImage>
val imageArrayList = ArrayList<Image>(images.size)
images.mapTo(imageArrayList) { Image(it.urls!!.regular!!, it.urls!!.raw!!) }
ImageDetailActivity.launch(activity, dataTransferHelper.put("urlList", imageArrayList), finalOptionsKey!!, position)
}
override fun onClickUser(position: Int, user: UnsplashImage.User) {
val uri = Uri.parse(user.links!!.html)
.buildUpon()
.appendQueryParameter("utm_source", "SketchSample")
.appendQueryParameter("utm_medium", "referral")
.appendQueryParameter("utm_campaign", "api-credit")
.build()
val intent = Intent(Intent.ACTION_VIEW)
intent.data = uri
startActivity(intent)
}
override fun onRefresh() {
if (adapter != null) {
adapter!!.loadMoreFinished(false)
}
if (!refresh_recyclerFragment.isRefreshing) {
refresh_recyclerFragment.isRefreshing = true
}
loadData(1)
}
override fun onLoadMore(adapter1: AssemblyAdapter) {
loadData(pageIndex 1)
}
private class LoadDataCallback internal constructor(fragment: UnsplashPhotosFragment, private val pageIndex: Int) : Callback<List<UnsplashImage>> {
private val reference: WeakReference<UnsplashPhotosFragment> = WeakReference(fragment)
init {
if (pageIndex == 1) {
fragment.hint_recyclerFragment.hidden()
}
}
override fun onResponse(call: Call<List<UnsplashImage>>, response: Response<List<UnsplashImage>>) {
val fragment = reference.get() ?: return
if (!fragment.isViewCreated) {
return
}
if (pageIndex == 1) {
create(fragment, response)
} else {
loadMore(fragment, response)
}
fragment.refresh_recyclerFragment.isRefreshing = false
}
override fun onFailure(call: Call<List<UnsplashImage>>, t: Throwable) {
val fragment = reference.get() ?: return
val activity = fragment.activity ?: return
if (!fragment.isViewCreated) {
return
}
if (pageIndex == 1) {
fragment.hint_recyclerFragment.failed(t, View.OnClickListener { fragment.onRefresh() })
fragment.refresh_recyclerFragment.isRefreshing = false
} else {
fragment.adapter!!.loadMoreFailed()
Toast.makeText(fragment.activity, HintView.getCauseByException(activity, t), Toast.LENGTH_LONG).show()
}
}
private fun create(fragment: UnsplashPhotosFragment, response: Response<List<UnsplashImage>>) {
val activity = fragment.activity ?: return
val images = response.body()
if (images == null || images.isEmpty()) {
fragment.hint_recyclerFragment.empty(

資源截圖

代碼片段和文件信息

package?me.panpf.sketch.sample.net;

import?me.panpf.sketch.sample.bean.BaiduImageSearchResult;
import?retrofit2.Call;
import?retrofit2.http.GET;
import?retrofit2.http.Query;

public?interface?BaiduImageService?{

????@GET(“search/acjson?tn=resultjson_com&ipn=rj&ct=201326592&is=&fp=result&cl=2&lm=-1&ie=utf-8&oe=utf-8&adpicid=&st=-1&z=&ic=0&s=&se=&tab=&width=&height=&face=0&istype=2&qc=&nc=1&fr=&gsm=3c&1437824884073=“)
????Call?searchPhoto(
????????????@Query(“word“)?String?word
????????????@Query(“queryWord“)?String?queryWord
????????????@Query(“pn“)?int?pageStart
????????????@Query(“rn“)?int?pageSize);
}

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2019-01-17?05:43??sketch-master\
?????文件?????????334??2019-01-17?05:43??sketch-master\.gitignore
?????文件???????67561??2019-01-17?05:43??sketch-master\CHANGELOG.md
?????文件???????37713??2019-01-17?05:43??sketch-master\CHANGELOG_P_B.md
?????文件???????13327??2019-01-17?05:43??sketch-master\LICENSE.txt
?????文件???????10483??2019-01-17?05:43??sketch-master\README.md
?????文件???????11127??2019-01-17?05:43??sketch-master\README_EN.md
?????文件?????????903??2019-01-17?05:43??sketch-master\build.gradle
?????文件?????????276??2019-01-17?05:43??sketch-master\build_kotlin.gradle
?????目錄???????????0??2019-01-17?05:43??sketch-master\docs\
?????目錄???????????0??2019-01-17?05:43??sketch-master\docs\res\
?????文件??????493524??2019-01-17?05:43??sketch-master\docs\res\apps.png
?????文件??????135400??2019-01-17?05:43??sketch-master\docs\res\gif_flag.png
?????文件????????4623??2019-01-17?05:43??sketch-master\docs\res\logo.png
?????文件???????48594??2019-01-17?05:43??sketch-master\docs\res\logo_source.jpg
?????文件???????48793??2019-01-17?05:43??sketch-master\docs\res\sample_debug_mode.jpeg
?????文件?????1896495??2019-01-17?05:43??sketch-master\docs\sketch-sample.apk
?????文件????????2334??2019-01-17?05:43??sketch-master\docs\sketch-sample.png
?????目錄???????????0??2019-01-17?05:43??sketch-master\docs\wiki\
?????文件????????4164??2019-01-17?05:43??sketch-master\docs\wiki\bitmap_pool.md
?????文件????????5260??2019-01-17?05:43??sketch-master\docs\wiki\block_display.md
?????文件????????1581??2019-01-17?05:43??sketch-master\docs\wiki\cache_processed_image_in_disk.md
?????文件????????1747??2019-01-17?05:43??sketch-master\docs\wiki\cancel_request.md
?????文件????????2426??2019-01-17?05:43??sketch-master\docs\wiki\correct_image_orientation.md
?????文件????????2207??2019-01-17?05:43??sketch-master\docs\wiki\disk_cache.md
?????文件????????1669??2019-01-17?05:43??sketch-master\docs\wiki\display_apk_or_app_icon.md
?????文件????????2293??2019-01-17?05:43??sketch-master\docs\wiki\display_video_thumbnail.md
?????文件????????1296??2019-01-17?05:43??sketch-master\docs\wiki\error_tracker.md
?????文件????????1130??2019-01-17?05:43??sketch-master\docs\wiki\http_stack.md
?????文件????????3585??2019-01-17?05:43??sketch-master\docs\wiki\image_displayer.md
?????文件????????3700??2019-01-17?05:43??sketch-master\docs\wiki\image_processor.md
............此處省略624個文件信息

評論

共有 條評論

<dl id="1tgbk"></dl>
<delect id="1tgbk"></delect>
    <optgroup id="1tgbk"><ruby id="1tgbk"><dfn id="1tgbk"></dfn></ruby></optgroup>
    <acronym id="1tgbk"><style id="1tgbk"><sup id="1tgbk"></sup></style></acronym>
    <acronym id="1tgbk"></acronym>
    <font id="1tgbk"><thead id="1tgbk"></thead></font>