最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android中HorizontalScrollView使用方法詳解

 更新時間:2016年05月23日 16:04:21   作者:pobi  
這篇文章主要為大家詳細介紹了Android中HorizontalScrollView使用方法,感興趣的小伙伴們可以參考一下

由于移動設(shè)備物理顯示空間一般有限,不可能一次性的把所有要顯示的內(nèi)容都顯示在屏幕上。所以各大平臺一般會提供一些可滾動的視圖來向用戶展示數(shù)據(jù)。Android平臺框架中為我們提供了諸如ListView、GirdView、ScrollView等滾動視圖控件,這幾個視圖控件也是我們平常使用最多的。下面介紹一下HorizontalScrollView的使用和需要注意的點:

 HorizontalScrollView是一個FrameLayout  ,這意味著你只能在它下面放置一個子控件,這個子控件可以包含很多數(shù)據(jù)內(nèi)容。有可能這個子控件本身就是一個布局控件,可以包含非常多的其他用來展示數(shù)據(jù)的控件。這個布局控件一般使用的是一個水平布局的LinearLayout  。TextView也是一個可滾動的視圖控件,所以一般不需要HorizontalScrollView

下面介紹一個HorizontalScrollView中包含許多圖片,并且可以滾動瀏覽的示例

 @Override 
 protected void onCreate(Bundle savedInstanceState) { 
  super.onCreate(savedInstanceState); 
  setContentView(R.layout. activity_main); 
  
  mLinearLayout = (LinearLayout) findViewById(R.id.mygallery); 
  
  File externalDir = Environment. getExternalStorageDirectory(); 
  String photosPath = externalDir.getAbsolutePath() + "/test/"; 
  File photosFile = new File(photosPath); 
  
  for (File photoFile : photosFile.listFiles()) { 
    mLinearLayout.addView(getImageView(photoFile.getAbsolutePath())); 
  } 
  
} 
 
 private View getImageView(String absolutePath) { 
  
  Bitmap bitmap = decodeBitmapFromFile(absolutePath, 200, 200); 
 LinearLayout layout = new LinearLayout(getApplicationContext()); 
 layout.setLayoutParams( new LayoutParams(250, 250)); 
 layout.setGravity(Gravity. CENTER); 
  
  ImageView imageView = new ImageView(this); 
  imageView.setLayoutParams( new LayoutParams(200,200)); 
  imageView.setScaleType(ImageView.ScaleType. CENTER_CROP); 
  imageView.setImageBitmap(bitmap); 
  layout.addView(imageView); 
  
  return layout; 
} 
 
 private Bitmap decodeBitmapFromFile(String absolutePath, int reqWidth, int reqHeight) { 
 Bitmap bm = null; 
  
  // First decode with inJustDecodeBounds=true to check dimensions 
  final BitmapFactory.Options options = new BitmapFactory.Options(); 
  options. inJustDecodeBounds = true ; 
  BitmapFactory. decodeFile(absolutePath, options); 
  
  // Calculate inSampleSize 
  options. inSampleSize = calculateInSampleSize(options, reqWidth, reqHeight); 
  
  // Decode bitmap with inSampleSize set 
  options. inJustDecodeBounds = false ; 
  bm = BitmapFactory. decodeFile(absolutePath, options); 
  
  return bm; 
} 
 
 private int calculateInSampleSize(Options options, int reqWidth, 
    int reqHeight) { 
  // Raw height and width of image 
  final int height = options.outHeight; 
  final int width = options.outWidth; 
  int inSampleSize = 1; 
   
  if (height > reqHeight || width > reqWidth) { 
  if (width > height) { 
  inSampleSize = Math. round((float)height / ( float)reqHeight); 
  } else { 
  inSampleSize = Math. round((float)width / ( float)reqWidth); 
  } 
  } 
  
  return inSampleSize; 
} 

要顯示的圖片放在外置SDCard中test目錄下,上面的示例程序只是顯示了一張張大圖片的縮略版本,對這方面不懂的可以參看:

Android如何高效顯示較大的Bitmaps

HorizontalScrollView還可以設(shè)置滾動到一個指定的位置(x,0),它的子控件也會跟隨著滾動。

new Handler().postDelayed(new Runnable() { 
 @Override 
 public void run() { 
  // 水平直接滾動800px,如果想效果更平滑可以使用smoothScrollTo(int x, int y) 
  hsv.scrollTo(800, 0); 
 } 
}, 2000); 

效果圖:

以上就是本文的全部內(nèi)容,希望對大家學(xué)習(xí)Android軟件編程有所幫助。

相關(guān)文章

  • 手寫android布局示例

    手寫android布局示例

    這篇文章主要介紹了手寫android布局示例,需要的朋友可以參考下
    2014-02-02
  • 解決android.support.v4.content.FileProvide找不到的問題

    解決android.support.v4.content.FileProvide找不到的問題

    這篇文章主要介紹了解決android.support.v4.content.FileProvide找不到的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-03-03
  • 詳解Android JNI的基本使用(CMake)

    詳解Android JNI的基本使用(CMake)

    本文介紹了Android JNI的基本使用(CMake),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-12-12
  • Android Studio中配置OpenCV庫開發(fā)環(huán)境的教程

    Android Studio中配置OpenCV庫開發(fā)環(huán)境的教程

    這篇文章主要介紹了Android Studio中配置OpenCV庫開發(fā)環(huán)境的教程,OpenCV有Java接口,因而也經(jīng)常被用來做安卓開發(fā),需要的朋友可以參考下
    2016-05-05
  • Android ViewPager的MVP架構(gòu)搭建過程

    Android ViewPager的MVP架構(gòu)搭建過程

    本文主要介紹了ViewPager在Android中的作用以及使用場景,如引導(dǎo)頁、圖片瀏覽器、新聞或文章內(nèi)容的多標(biāo)簽頁等,同時,還詳細闡述了如何通過MVP架構(gòu)來搭建ViewPager,將視圖和邏輯進行解耦,提高代碼的可測試性、可復(fù)用性,使代碼結(jié)構(gòu)更清晰且易于擴展功能
    2024-10-10
  • 淺談RecyclerView(完美替代ListView,GridView)

    淺談RecyclerView(完美替代ListView,GridView)

    RecyclerView絕對是一款功能強大的控件,涵蓋了ListView,GridView,瀑布流等數(shù)據(jù)表現(xiàn)的形式。本文對其進行系統(tǒng)介紹,有需要的朋友可以看下
    2016-12-12
  • Android 炫舞漫天飛雪效果圖

    Android 炫舞漫天飛雪效果圖

    這篇文章主要介紹了Android 炫舞漫天飛雪效果圖的相關(guān)資料,需要的朋友可以參考下
    2016-01-01
  • Gradle?Build?Cache引發(fā)的Task緩存編譯問題

    Gradle?Build?Cache引發(fā)的Task緩存編譯問題

    這篇文章主要為大家介紹了Gradle?Build?Cache引發(fā)的Task緩存編譯問題,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-06-06
  • Android 實現(xiàn)銀聯(lián)刷卡機消費后手動簽名的功能(示例代碼)

    Android 實現(xiàn)銀聯(lián)刷卡機消費后手動簽名的功能(示例代碼)

    在一些商場購物時,不需要用筆在銀聯(lián)機上簽名了,直接用手指觸摸實現(xiàn)消費簽名,非常方便,下面小編給大家分享Android 實現(xiàn)銀聯(lián)刷卡機消費后手動簽名的功能,需要的朋友參考下吧
    2017-12-12
  • android ListActivity顯示圖標(biāo)實例

    android ListActivity顯示圖標(biāo)實例

    在ListActivity中顯示圖標(biāo),好像并不復(fù)雜,實現(xiàn)起來卻不輕松,我們下面一步步來實現(xiàn)ListActivity中顯示圖標(biāo)
    2013-11-11

最新評論

赤峰市| 文化| 柳州市| 兴城市| 醴陵市| 宝鸡市| 宁晋县| 金昌市| 杨浦区| 华容县| 宝坻区| 马山县| 昭苏县| 海口市| 黄骅市| 西峡县| 黄骅市| 潞西市| 万安县| 乐亭县| 万载县| 嘉黎县| 淳化县| 阿拉善右旗| 德惠市| 丰顺县| 阆中市| 察哈| 昔阳县| 菏泽市| 临湘市| 镇雄县| 西宁市| 板桥市| 孟连| 依安县| 镶黄旗| 台中市| 荔波县| 赫章县| 镇赉县|