Android一个小的浏览资源效果

移动开发 Android
本篇文章不只是在讲述一个效果的问题,希望大家能够用的到。

LogCat调测信息

在Window -> Show View -> Other... -> Android -> LogCat,这样将显示LogCat的窗口,对于System.out.print()以及Log.d(),可以打印出我们所需要的信息,例如:

  1. System.out.print("Hello ---------------------\n");   
  2. Log.d("WEI","Hi ------------------1-----------");   
  3. Log.d("WEI","Hi -------------------2----------"); 

这样,我们在LogCat的查窗口,可以看到相关的信息:

效果图

GalleyView 
 
Galley是画廊的意思,一般只在图片显示中使用,而且也不常用。

1)Android XML文件

Java代码:

  1. <?xml version="1.0" encoding="utf-8"?> 
  2. <Gallery xmlns:android="http://schemas.android.com/apk/res/android" 
  3. android:id="@+id/gallery" 
  4. android:layout_width="fill_parent" 
  5. android:layout_height="wrap_content"> 
  6. </Gallery> 

由于Galley用户处理图片,因此处理item可采用ImageView,在设置adapter中,我们可以参见《Android 学习笔记(十三):Activity-GridView 》中对BaseAdapter进行继承。

2)Java源代码

Java代码:

  1. public class Chapter7Test8 extends Activity {  
  2. @Override   
  3. protected void onCreate(Bundle savedInstanceState) {  
  4. super.onCreate(savedInstanceState);  
  5. setContentView(R.layout.chapter_7_test8);   
  6. //步骤1:和之前学习的一样,设置adapter来描述item的内容以及设置item的格式;通过setOnItemClickListener()设置点击触发的操作。   
  7. Gallery gallery = (Gallery)findViewById(R.id.gallery);  
  8. gallery.setAdapter (new ImageAdapter (this));  
  9. gallery.setOnItemClickListener (new OnItemClickListener(){  
  10. public void onItemClick(AdapterView<?> parent,View v,int position,long id){  
  11. Toast.makeText(Chapter7Test8.this,""+position,Toast.LENGTH_SHORT).show();  
  12. }  
  13. } );  
  14. }  
  15.  
  16. //步骤2:adapter继承BaseAdapter,具体描述item。需要创建构造函数,具体化getCount(), getItem(), getItemId(), getView()。   
  17. private class ImageAdapter extends BaseAdapter{  
  18. private Context mContext;  
  19. private Integer[] mImageIds = { R.drawable.sample_1, R.drawable.sample_2, R.drawable.sample_3,  
  20. R.drawable.sample_4, R.drawable.sample_5, R.drawable.sample_6,  
  21. R.drawable.sample_7 }; //我们将名称为drawable_sample_1的图片文件,拷贝到drawable/下面。   
  22. public ImageAdapter(Context context){  
  23. mContext = context;  
  24. }  
  25. public int getCount() {  
  26. return mImageIds.length;  
  27. }  
  28. public Object getItem(int position) {  
  29. return position;  
  30. }  
  31. public long getItemId(int position) {  
  32. return position;  
  33. }  
  34. //步骤3:每个item都是ImageView,通过setImageResource将图片呈现,设置每个item的大小,以及显示比例,这里,我们采用FIT_XY,根据X:Y将整个图片显示出来,如果X:Y和图片长:宽不一样,图片可能有些变形。   
  35. public View getView(int position, View convertView, ViewGroup parent) {  
  36. ImageView image = new ImageView(mContext);  
  37. image.setImageResource(mImageIds[position]);  
  38. image.setLayoutParams(new Gallery.LayoutParams(150,100));  
  39. image.setScaleType(ImageView.ScaleType.FIT_XY);  
  40. return image;  
  41. }   
  42. }  
  43. }  
  44. 3)通过xml文件对item的格式进行设置   
  45. 我们在res/values/下面增加一个xml文件,用于描述自定义widget的属性格式为  
  46. Java代码:  
  47. <resources> 
  48. <declare-styleable name="XXXX"> 
  49. <attr name="AAAAA" format="BBBB" /> 
  50. <attr name="aaaaa" format="bbbb" /> 
  51. </declare-styleable> 
  52. </resources> 

在R.java中将增加int R.styleable.XXXX[]来表示此定义,如果里面有2个属性,则有两个元素。在本例,设置style的属性,我们设置一个android已定义的属性galleryItembackground,它定义一个具有一个边框的gallery的item。如下:

Java代码:

  1. <resources> 
  2. <declare-styleable name="HelloGallery"> 
  3. <attr name="android:galleryItemBackground" /> 
  4. </declare-styleable> 
  5. </resources> 

获得自定义属性方式:

Java代码:

  1. TypedArray aobtainStyledAttributes (R.styleable.XXX /*int[]*/ );  
  2. aattrId = a.getResourceId (R.styleable.XXXX_AAAA,defaultId);//获得该属性的ID, 如果没有发现该属性,则返回defaultId的值。   
  3. a.recyle (),//在使用obtainStyledAttributes()后应调用,是的可以被系统重用。  

在这个例子中:

Java代码:

  1. public ImageAdapter(Context context){  
  2. TypedArray aobtainStyledAttributes(R.styleable.HelloGallery);  
  3. mGalleryItemBackground = a.getResourceId(R.styleable.HelloGallery_android_galleryItemBackground , 0);  
  4. a.recycle();  
  5. }  
  6. public View getView(int position, View convertView, ViewGroup parent) {  
  7. image.setBackgroundResource (mGalleryItemBackground);  
  8. }  

 

【编辑推荐】

Android 开发简介 基于平台

Android开发:Activity之间的传值

Android开发:自定义GridView/ListView数据源

责任编辑:zhaolei 来源: 开发者
相关推荐

2017-12-14 15:45:02

2023-05-22 09:10:53

CSSloading 效

2017-05-11 13:42:49

JavaScriptJQuery DataDOM

2014-10-14 15:50:19

UIAndroid

2012-09-03 10:24:16

果粉浏览器

2023-05-15 09:16:18

CSSCSS Mask

2009-06-11 10:59:19

netbeans提示

2021-04-19 11:16:17

小程序微信开发

2017-04-26 14:48:01

Chrome程序扩展

2009-07-06 18:28:26

Java Socket

2014-10-14 10:01:10

UIAndroid

2015-09-08 10:28:52

数据中心资源清单

2023-05-31 08:12:26

Kubernete资源分配工具

2024-11-21 08:31:07

耗资源神秘进程

2019-12-02 13:46:35

浏览器前端开发

2009-05-27 08:54:15

浏览器平台Chrome

2009-09-01 16:14:06

C#窗口抖动

2023-04-27 08:42:50

效果

2010-01-26 13:15:42

ASP.NET MVC

2020-06-01 12:47:12

戴尔
点赞
收藏

51CTO技术栈公众号