在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/ Android問答
嫑吢丕 回答

在H5中是通過schema喚起的,如果在微信中就無法通過schema喚起

失魂人 回答

一個是ES5寫法,一個是ES6寫法,一樣的

玩控 回答

是我 root 后的影響。我剛剛試了`adb shell getprop | grep abi,顯示權(quán)限被拒絕。
隨后我嘗試了其他命令,發(fā)現(xiàn) adb 是沒有根目錄的文件權(quán)限。

隨后我在 SuperSU 內(nèi)進行了去除 Root 權(quán)限。在手機重啟后,root 權(quán)限消失,adb 重新變得可用。

android studio 又重新識別了我的手機

呆萌傻 回答

你沒有寫入文件的目錄的權(quán)限。檢查下上傳文件保存的位置

念初 回答

使用rxjava吧
線程操作比較方便

package com.github.rxjavatest

import android.os.Bundle
import android.support.v7.app.AppCompatActivity
import android.support.v7.widget.GridLayoutManager
import android.support.v7.widget.RecyclerView
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.ImageView
import com.bumptech.glide.Glide
import io.reactivex.Observable
import io.reactivex.android.schedulers.AndroidSchedulers
import io.reactivex.functions.BiFunction

class MainActivity : AppCompatActivity() {

    lateinit var recyclerView: RecyclerView

    val list = arrayListOf<String>()
    val adapter = ImageAdapter(list)

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        recyclerView = findViewById(R.id.recyclerView)
        recyclerView.layoutManager = GridLayoutManager(this, 3)
        recyclerView.adapter = adapter

        initImage()
    }

    private fun initImage() {
        val imageGetter = ImageGetter("http://588ku.com/beijing/0-0-pxnum-4-8-0-0-0-1/")
        val imgOb = imageGetter.getImageObserable()

        val imageGetter2 = ImageGetter("http://588ku.com/beijing/0-0-pxnum-4-8-0-0-0-2/")
        val imgOb2 = imageGetter2.getImageObserable()

        Observable.zip(imgOb, imgOb2, BiFunction<List<String>, List<String>, List<String>> { t1, t2 ->
            val list = arrayListOf<String>()
            list.addAll(t1)
            list.addAll(t2)
            list
        }).observeOn(AndroidSchedulers.mainThread())
                .subscribe {
                    list.addAll(it)
                    adapter.notifyDataSetChanged()
                }
    }
}

class ImageAdapter(val list: List<String>) : RecyclerView.Adapter<VH>() {

    override fun onBindViewHolder(holder: VH?, position: Int) {

        holder?.apply {
            val src = list[position]
            Glide
                    .with(itemView)
                    .load(src)
                    .into(img)
        }
    }

    override fun onCreateViewHolder(parent: ViewGroup?, viewType: Int): VH {
        val view = LayoutInflater.from(parent?.context)?.inflate(R.layout.item_img, parent, false)
        return VH(view)
    }

    override fun getItemCount(): Int {
        return list.size
    }

}

class VH(itemView: View?) : RecyclerView.ViewHolder(itemView) {

    val img: ImageView by lazy { itemView!!.findViewById<ImageView>(R.id.iv_image) }

}
package com.github.rxjavatest

import android.annotation.SuppressLint
import android.util.Log
import io.reactivex.Observable
import io.reactivex.android.schedulers.AndroidSchedulers
import io.reactivex.schedulers.Schedulers
import org.jsoup.Jsoup
import org.jsoup.nodes.Document
import java.util.concurrent.Executors


/**
 * Created by cai on 2018/2/12.
 */
class ImageGetter(var url: String) {
    
    fun getImageObserable(): Observable<ArrayList<String>> {
        return Observable
                .create<Document> {
                    val doc = Jsoup.connect(url)
                            .get()
                    it.onNext(doc)
                    it.onComplete()
                }
                .subscribeOn(Schedulers.io())
                .map {
                    it.select("div a img")
                }
                .map {
                    val list = arrayListOf<String>()
                    it.forEach {
                        val image = it.attr("data-original")
                        list.add(image)
                    }
                    list
                }
                .observeOn(AndroidSchedulers.mainThread())
    }

    @SuppressLint("SetJavaScriptEnabled")
    companion object {
    }

}

val Any.TAG
    get() = this.javaClass.simpleName

fun Any.logger(msg: Any?) {
    Log.i(TAG, msg.toString())
}

簡單寫了個demo
項目地址

這里用JSoup爬數(shù)據(jù)
然后Rxjava返回數(shù)據(jù)流處理結(jié)果的img src的集合的Observable

在實際Activity中同時獲得兩個Observable,使用zip操作符組合,然后在主線程中將圖片添加到list
刷新adapter

使用Glide加載圖片

蟲児飛 回答
  1. 創(chuàng)建Application

    1. 創(chuàng)建WebView
    2. 將首頁設(shè)置到WebView中
  2. 打包Apk
  3. 上架
溫衫 回答

復(fù)用導(dǎo)致的吧,你應(yīng)該是放了一張默認(rèn)圖片吧?你寫死圖片寬高試試

ok 已經(jīng)解決了
onLoadStart里面不能setstate否則會卡死!

不二心 回答

H5頁面跳轉(zhuǎn)app后面可追加參數(shù),然后app端根據(jù)參數(shù)跳轉(zhuǎn)不同路由!首先H5頁面跳轉(zhuǎn)app有一定的兼容性,就比如在微信中就是無法直接跳轉(zhuǎn)的!

乞許 回答

android studio的run標(biāo)簽中可能會有一些提示

或者到Logcat的filter中設(shè)置no filters
設(shè)置logcat的日志級別為waring級別 ,一般會看到一些日志提示

涼薄 回答

表單請求的時候,HTTP中的Content-Type屬性標(biāo)記了Body的內(nèi)容
Content-Type:application/x-www-form-urlencoded 代表表單
Content-Type: application/json 代表JSON數(shù)據(jù)

還有如multipart/form-data用于上傳包含文件的內(nèi)容,application/xml則是XML文件

至于編碼方面,也會有些許的差異??梢詤⒖?a rel="nofollow noreferrer">這篇文章

有你在 回答

我覺得吧,電腦跑我都嫌慢沒用。其次,手機除了不方便以外,很多運行時所使用的內(nèi)存機制都容易使其溢出。其他原因樓下大佬有補充嗎。

萌吟 回答

1) 只需要第一個就可以了.(上面文字有介紹,第二個的東西已經(jīng)包含在第一個里面了)
2) 接下來直接安裝就行了. 更多具體情況,你還是自己看文檔了.這種三言兩語也說不清.
如果身邊有熟悉的人,直接找身邊的人指導(dǎo)比較好.

不討喜 回答

解決了,是table每行長度不一樣引起的

臭榴蓮 回答

<meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" name="viewport" />
我用flexible開發(fā)的是微信端的,這個沒問題,不知你用的是app還是瀏覽器

厭惡我 回答

你可以用alarmmanager+pendingintend來實現(xiàn)該功能,當(dāng)定時結(jié)束時發(fā)送一個廣播。或者你可以在你的后臺播放服務(wù)中自己開啟一個線程,來代替alarmmanager