LogCat调测信息

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

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

这样,我们在LogCat的查窗口,可以看到相关的信息。Log有5个级别,分别是v,d,i,w,e,使用Log.w类似方式调用。

GalleyView

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

1)Android XML文件

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

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

2)Java源代码

public class Chapter7Test8 extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.chapter_7_test8);

//步骤1:和之前学习的一样,设置adapter来描述item的内容以及设置item的格式;通过setOnItemClickListener()设置点击触发的操作。
        Gallery gallery = (Gallery)findViewById(R.id.gallery);
        gallery.setAdapter(new ImageAdapter(this));
        gallery.setOnItemClickListener(new OnItemClickListener(){
            public void onItemClick(AdapterView<?> parent,View v,int position,long id){
                Toast.makeText(Chapter7Test8.this,""+position,Toast.LENGTH_SHORT).show();
            }
        });
    }
    //步骤2:adapter继承BaseAdapter,具体描述item。需要创建构造函数,具体化getCount(), getItem(), getItemId(), getView()。
    private class ImageAdapter extends BaseAdapter{
        private Context mContext;
        private Integer[] mImageIds = {  R.drawable.sample_1,  R.drawable.sample_2, R.drawable.sample_3,
                R.drawable.sample_4,  R.drawable.sample_5,  R.drawable.sample_6,
                R.drawable.sample_7 }; //我们将名称为drawable_sample_1的图片文件,拷贝到drawable/下面。
       
        public ImageAdapter(Context context){
            mContext = context;
        }

public int getCount() {
            return mImageIds.length;
        }

public Object getItem(int position) {
            return position;
        }

public long getItemId(int position) {
            return position;
        }
       //步骤3:每个item都是ImageView,通过setImageResource将图片呈现,设置每个item的大小,以及显示比例,这里,我们采用FIT_XY,根据X:Y将整个图片显示出来,如果X:Y和图片长:宽不一样,图片可能有些变形。
        public View getView(int position, View convertView, ViewGroup parent) {
            ImageView image = new ImageView(mContext);
            image.setImageResource(mImageIds[position]);
            image.setLayoutParams(new Gallery.LayoutParams(150,100));
            image.setScaleType(ImageView.ScaleType.FIT_XY);
            return image;
        }  
    }
}

3)通过xml文件对item的格式进行设置

我们在res/values/下面增加一个xml文件,用于描述自定义widget的属性格式为

<resources>
    <declare-styleable name="XXXX">
        <attr name="AAAAA" format="BBBB"/>
        <attr name="aaaaa" format="bbbb"/>
    </declare-styleable>
</resources>

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

<resources>
    <declare-styleable name="HelloGallery">
        <attr name="android:galleryItemBackground" />
    </declare-styleable>
</resources>

获得自定义属性方式:

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

在这个例子中:

public ImageAdapter(Context context){
            ... ...
            TypedArray a= obtainStyledAttributes(R.styleable.HelloGallery);
            mGalleryItemBackground = a.getResourceId(R.styleable.HelloGallery_android_galleryItemBackground, 0);
            a.recycle();
        }

public View getView(int position, View convertView, ViewGroup parent) {
            ... ...
            image.setBackgroundResource(mGalleryItemBackground);
            ... ...
        }

相关链接:我的Andriod开发相关文章

Android 学习笔记(十五):Activity-GalleryView相关推荐

  1. Android学习笔记第五篇--网络连接与云服务(一)

    Android学习笔记第五篇–网络连接与云服务 第一章.无线连接设备 ​ 除了能够在云端通讯,Android的无线API也允许在同一局域网内的设备通讯,**甚至没有连接网络,而是物理具体相近,也可以相 ...

  2. python复制指定字符串_python3.4学习笔记(十五) 字符串操作(string替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、分割等)...

    python3.4学习笔记(十五) 字符串操作(string替换.删除.截取.复制.连接.比较.查找.包含.大小写转换.分割等) python print 不换行(在后面加上,end=''),prin ...

  3. windows内核开发学习笔记十五:IRP结构

    windows内核开发学习笔记十五:IRP结构   IRP(I/O Request Package)在windows内核中,有一种系统组件--IRP,即输入输出请求包.当上层应用程序需要访问底层输入输 ...

  4. Polyworks脚本开发学习笔记(十五)-用Python连接Polyworks的COM组件

    Polyworks脚本开发学习笔记(十五)-用Python连接Polyworks的COM组件 用Polyworks脚本开发,没有高级语言的支持,功能难免单一,一些比较复杂的交互实现不了,界面和报告也很 ...

  5. IOS之学习笔记十五(协议和委托的使用)

    1.协议和委托的使用 1).协议可以看下我的这篇博客 IOS之学习笔记十四(协议的定义和实现) https://blog.csdn.net/u011068702/article/details/809 ...

  6. Mr.J-- jQuery学习笔记(十五)--实现页面的对联广告

    请看之前的:Mr.J-- jQuery学习笔记(十四)--动画显示隐藏 话不多说,直接上demo <!DOCTYPE html> <html lang="en"& ...

  7. 世界是有生命的(通向财富自由之路学习笔记十五)

    最近因为工作调度的事情,有了一段空闲的日子,有比较多的时间来回望自己走过的路以及如何走好以后的路.之前忙得很少时间来写博文,很少时间来写读书笔记,逐渐将自己一些很好的习惯丢弃了.从今天起将重拾写博文的 ...

  8. 前端学习笔记(十五)

    第十五章 HTML5新增标签 一.HTML5概述 1.简介         HTML5万维网的核心语言.标准通用标记语言下的一个应用超文本标记语言的第五次大修改.HTML5将成为 HTML.XHTML ...

  9. Android学习笔记(五)——数据存储(二)SQLite和ContentProvider

    3.SQLite 类SQLiteDatebase的实例代表了一个SQLite数据库,它的方法可以执行SQL语句.数据库对于一个应用是私有的,在一个应用中,数据库名也是唯一的. SQLiteOpenHe ...

  10. Android 学习笔记(十二):安卓中的事件分发机制

    一.事件分发的对象是谁 答:点击事件(Touch事件) 定义 当用户触摸屏幕时(View或ViewGroup派生的控件),将产生点击事件.Touch事件的相关细节(发生触摸的位置.时间等)被封装成Mo ...

最新文章

  1. 人工智能AI和机器学习ML对量化交易领域的影响
  2. python代码怎么设置,如何设置PyCharm中的Python代码模版(推荐)
  3. Firefox 66 将自带自动屏蔽声音功能
  4. Linux 内存映射函数 mmap()函数笔记
  5. 1042:奇偶ASCII值判断
  6. RTMPdump(libRTMP) 源代码分析 8: 发送消息(Message)
  7. WiFi 802.11ax
  8. (十九)java多线程之ForkJoinPool
  9. Vmware虚拟机的安装和使用
  10. 信息学奥赛一本通 提高篇 第6章 平衡树Treap
  11. WEB安全基础-XSS基础
  12. wordpress获取当前登录用户信息的方法
  13. WinDBG脚本入门
  14. Altera下载器使用说明 Intel(Altera)FPGA高速下载器线PL-USB2-BLASTER中文详细使用手册
  15. 【学习笔记】贪心科技AI体验课
  16. DAOS 系统内部介绍(一)—— 概述
  17. ArcEngine10 ecp 授权
  18. 最安全的微信群管理工具推荐
  19. windows xp 自动登录
  20. [转] 人生“三重境界”和“四种大智慧”

热门文章

  1. 下面哪个对象能代表当前的HTML文件,GD:JAVA考试选择题
  2. 十六进制计算器 android,十六进制计算器
  3. 基于二叉链表的树结构相等的判断
  4. 徐州计算机应用宿舍,江苏徐州财经高等职业技术学校住宿条件
  5. ios查看帧率的软件_iOS开发-自己写一个实时显示fps帧数的小控件
  6. RN 开发遇到的问题之传参函数错误Invariant Violation: Maximum update depth exceeded.
  7. JavaScript中的加密解密
  8. 《深入浅出通信原理》学习(1-8)
  9. app--查看包名的五种常用方法
  10. java能开发winform程序吗_Java进击C#——应用开发之WinForm环境