Operasi yang memakan masa dalam Android juga melibatkan pengendalian UI, bagaimana untuk menanganinya?
習慣沉默
習慣沉默 2017-05-24 11:38:10
0
1
786

private void addPolylineInPlayGround() {

    List<Integer> colorList = new ArrayList<Integer>();
    List<BitmapDescriptor> bitmapDescriptors = new ArrayList<BitmapDescriptor>();
    int[] colors = new int[]{Color.argb(255, 0, 255, 0), Color.argb(255, 255, 255, 0), Color.argb(255, 255, 0, 0)};

    //用一个数组来存放纹理
    List<BitmapDescriptor> textureList = new ArrayList<BitmapDescriptor>();
    textureList.add(BitmapDescriptorFactory.fromResource(R.drawable.custtexture));

    List<Integer> texIndexList = new ArrayList<Integer>();
    texIndexList.add(0);//对应上面的第0个纹理
    texIndexList.add(1);
    texIndexList.add(2);

    Random random = new Random();
    for (int i = 0; i < latLngs.size(); i++) {
        colorList.add(colors[random.nextInt(3)]);
        bitmapDescriptors.add(textureList.get(0));
    }
    mPolyline = mAMap.addPolyline(new PolylineOptions().setCustomTexture(BitmapDescriptorFactory.fromResource(R.drawable.custtexture)) //setCustomTextureList(bitmapDescriptors)
            .setCustomTextureIndex(texIndexList)
            .addAll(latLngs)
            .useGradient(true)
            .width(18));
    dismissLoading();
    LatLngBounds bounds = new LatLngBounds(latLngs.get(0), latLngs.get(latLngs.size() - 2));
    mAMap.animateCamera(CameraUpdateFactory.newLatLngBounds(bounds, 200));
}

//Pertama, dapatkan bilangan titik latitud dan longitud yang agak besar melalui permintaan rangkaian, kemudian saya akan melukis garisan berdasarkan titik pada peta. Masalah utama sekarang ialah proses lukisan garisan akan lebih memakan masa dan halaman akan tersekat (yang tidak bagus). Kerana jumlah data akan menjadi lebih besar, tetapi garisan yang dilukis oleh sub-benang utama tidak boleh dilukis dan urutan UI akan tersekat lagi. Tolong....

ps: Saya cuba menggunakan runonuithread dalam benang kanak-kanak untuk mengendalikan addPolyLine tengah, tetapi ia tidak berfungsi sama ada.

这个方法在请求完数据后就直接执行了。
習慣沉默
習慣沉默

membalas semua(1)
某草草

Mula-mula lukis dalam sub-benang, dan kemudian muat semula antara muka dalam utas utama melalui pengendali.
Jika anda ingin menggunakan rxjava, ia akan menjadi sangat mudah

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!