日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > Android >内容正文

Android

android水平滚动条,Android使用HorizontalScrollView实现水平滚动

發(fā)布時(shí)間:2025/3/21 Android 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android水平滚动条,Android使用HorizontalScrollView实现水平滚动 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

HorizontalScrollView 和 ScrollView 都是由 FrameLayout 派生出來(lái)的。它們就是一個(gè)用于為普通組件添加滾動(dòng)條的組件。且 HorizontalScrollView 和 ScrollView 里面最多只能包含一個(gè)組件(當(dāng)然組件里面還可以嵌套組件)。它們不同的是 HorizontalScrollView 用于添加水平滾動(dòng),而 ScrollView 用于添加垂直滾動(dòng)。

突然間想到 做一個(gè)屏幕下方水平滑動(dòng),屏幕上方并作出相應(yīng)的反應(yīng)的效果。只是在下方滾動(dòng)時(shí),屏幕上方?jīng)]有作出理想的反應(yīng),點(diǎn)擊事件倒是實(shí)現(xiàn)了。最終只能在網(wǎng)上搜索,終于找到了一個(gè)。于是作出的效果如下:

只是這個(gè)效果還有所缺陷,加載了 13 張圖片,在屏幕下方水平滾動(dòng)到最后一頁(yè)時(shí),第 9 張的圖片并沒有在上面的顯示出來(lái)(原作者的也有這個(gè)問題);如果圖片的數(shù)量小于或者等于 4 張時(shí)則不能運(yùn)行。

本例的難點(diǎn)主要在于 MyHorizontalView 類中,并且還有收集而來(lái)的注解。

MainActivity.java :

package com.crazy.horizontalscrollviewtest;

import java.io.InputStream;

import java.util.ArrayList;

import java.util.Arrays;

import java.util.List;

import com.crazy.horizontalscrollviewtest.MyHorizontalView.CurrentImageChangeListener;

import com.crazy.horizontalscrollviewtest.MyHorizontalView.OnItemClickListener;

import android.content.Context;

import android.graphics.Bitmap;

import android.graphics.BitmapFactory;

import android.graphics.Color;

import android.os.Bundle;

import android.util.Log;

import android.view.View;

import android.widget.ImageView;

import android.support.v7.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {

private ImageView mImageView;

private MyHorizontalView myHorizontalView;

private List bitmapList;

private MyAdapter adapter;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

init();

}

private void init() {

mImageView = (ImageView)findViewById(R.id.imageView);

bitmapList = new ArrayList<>(Arrays.asList(

readBitMap(this, R.drawable.bricks),

readBitMap(this, R.drawable.dog),

readBitMap(this, R.drawable.flower),

readBitMap(this, R.drawable.grass),

readBitMap(this, R.drawable.stones),

readBitMap(this, R.drawable.wood),

readBitMap(this, R.drawable.bg_01),

readBitMap(this, R.drawable.bg_02),

readBitMap(this, R.drawable.bg_03),

readBitMap(this, R.drawable.bg_04),

readBitMap(this, R.drawable.bg_05),

readBitMap(this, R.drawable.bg_06),

readBitMap(this, R.drawable.bg_07)

));

myHorizontalView = (MyHorizontalView)findViewById(R.id.my_horizontal);

adapter = new MyAdapter(this, bitmapList);

//設(shè)置適配器

myHorizontalView.initDatas(adapter);

//添加滾動(dòng)回調(diào)

myHorizontalView

.setCurrentImageChangeListener(new CurrentImageChangeListener() {

@Override

public void onCurrentImgChanged(int position, View viewIndicator) {

Log.e("==============","=============== " + position);

mImageView.setImageBitmap(bitmapList.get(position));

viewIndicator.setBackgroundColor(Color.parseColor("#AA024DA4"));

}

});

//添加點(diǎn)擊回調(diào)

myHorizontalView.setOnItemClickListener(new OnItemClickListener() {

@Override

public void onItemClick(View view, int position) {

mImageView.setImageBitmap(bitmapList.get(position));

view.setBackgroundColor(Color.parseColor("#AA024DA4"));

}

});

}

public static Bitmap readBitMap(Context mContext, int resId) {

BitmapFactory.Options opt = new BitmapFactory.Options();

opt.inPreferredConfig = Bitmap.Config.RGB_565;

opt.inPurgeable = true;

opt.inInputShareable = true;

InputStream is = mContext.getResources().openRawResource(resId);

return BitmapFactory.decodeStream(is, null, opt);

}

}

總結(jié)

以上是生活随笔為你收集整理的android水平滚动条,Android使用HorizontalScrollView实现水平滚动的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。