1.ImageView

常用属性:

android:src
设置可绘制对象作为 ImageView 显示的内容


android:cropToPadding

如果设置为true,图片裁剪到保留该ImageView的padding


android:paddingTop
与上节点边距的填充


android:adjustViewBounds
如果设置为true 图像将自动调整自己的长宽比


android:maxWidth
设置图像的最大宽


android:maxHeight
设置图像的最大高


android:padding

设置上、下、左、右的填充


android:scaleType
控制如何调整图像大小或者移动范围,以配合ImageView 的大小下面是 scaleType 所支持的类型

有如下取值:
matrix 0
用矩阵来绘图
fitXY 1
把图片不按比例扩大/缩小到View的大小显示
fitStart 2
把图片按比例扩大/缩小到View的宽度,显示在View的上部分位置
fitCenter 3
把图片按比例扩大/缩小到View的宽度,居中显示
fitEnd 4
把 图片按比例扩大/缩小到View的宽度,显示在View的下部分位置
center 5
按图片的原来size居中显示,当图片长/宽超过View的长/宽,则截取图片的居中部分显示
centerCrop 6
按比例扩大图片的size居中显示,使得图片长 (宽)等于或大于View的长(宽)
centerInside 7
将图片的内容完整居中显示,通过按比例缩小或原来的size使得图片长/宽等于或小于View的长/宽
实例:

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    android:orientation="vertical" >    <LinearLayout        android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:gravity="center"        android:orientation="horizontal" >        <Button            android:id="@+id/plus"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:text="增大透明度"            tools:ignore="HardcodedText" />        <Button            android:id="@+id/minus"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:text="降低透明度"            tools:ignore="HardcodedText" />        <Button            android:id="@+id/next"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:text="下一张"            tools:ignore="HardcodedText" />    </LinearLayout>    <!-- 定义显示图片整体的ImageView -->    <ImageView        android:id="@+id/image1"        android:layout_width="fill_parent"        android:layout_height="240dp"        android:background="#0000ff"        android:scaleType="fitCenter"        android:src="@drawable/qiao"        tools:ignore="ContentDescription" />    <!-- 定义显示图片局部细节的ImageView -->    <ImageView        android:id="@+id/image2"        android:layout_width="120dp"        android:layout_height="120dp"        android:layout_marginTop="10dp"        android:background="#0000ff"        tools:ignore="ContentDescription" /></LinearLayout>

package com.light.android.study;import android.app.Activity;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.graphics.drawable.BitmapDrawable;import android.os.Bundle;import android.view.MotionEvent;import android.view.View;import android.view.View.OnClickListener;import android.view.View.OnTouchListener;import android.widget.Button;import android.widget.ImageView;public class MainActivity extends Activity {    int[] images = new int[]{R.drawable.lijiang,R.drawable.qiao,R.drawable.shuangta,R.drawable.shui,R.drawable.xiangbi,};    //当前的图片序号int currentImg = 1;//透明度private int alpha = 255;private Button plus,minus,next;private ImageView image1,image2;@Overridepublic void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);init();initListener();}private void init(){plus = (Button)findViewById(R.id.plus);minus = (Button)findViewById(R.id.minus);next = (Button)findViewById(R.id.next);image1 = (ImageView)findViewById(R.id.image1);image2 = (ImageView)findViewById(R.id.image2);}private void initListener(){next.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View v){if (currentImg >= 4){//如果到最后一张跳回第一张图片currentImg = 0;}BitmapDrawable bitmapDrawable = (BitmapDrawable) image1.getDrawable();// 如果图片还没有回收,强制回收if (!bitmapDrawable.getBitmap().isRecycled()){bitmapDrawable.getBitmap().recycle();}//设置的是对应的src的图片image1.setImageBitmap(BitmapFactory.decodeResource(getResources(), images[currentImg]));//下一张currentImg++;}});//增减透明度OnClickListener listener = new OnClickListener(){@Overridepublic void onClick(View v){if(v == plus){alpha += 20;}if(v == minus){alpha -= 20;}if(alpha >= 255){alpha = 255;}if(alpha <= 0){alpha = 0;}image1.setAlpha(alpha);}};plus.setOnClickListener(listener);minus.setOnClickListener(listener);image1.setOnTouchListener(new OnTouchListener(){@Overridepublic boolean onTouch(View view, MotionEvent event){BitmapDrawable bitmapDrawable = (BitmapDrawable) image1.getDrawable();Bitmap bitmap = bitmapDrawable.getBitmap();//设置比例double scale = bitmap.getWidth() / 500;int x = (int) (event.getX() * scale);int y = (int) (event.getY() * scale);if (x  + 120 > bitmap.getWidth()){x = bitmap.getWidth() - 120;}if (y  + 120 > bitmap.getHeight()){y = bitmap.getHeight() - 120;}image2.setImageBitmap(Bitmap.createBitmap(bitmap, x, y, 120, 120));image2.setAlpha(alpha);return false;}});}}

输出结果:




2.ImageButton

ImageButton看起来像一个普通的按钮,可以设置在不同状态(如按下)下改变背景颜色.
按钮的图片可用通过XML元素的android:src属性或setImageResource(int)方法指定.

使用Draw9Patch工具设置图片

使用方法及总结:

http://henzil.easymorse.com/?p=422


3.QuickContactBadge

选择联系人的快捷方式
要在AndroidManifest中设置android.permission.READ_CONTACTS的权限,否则,不会弹出窗口,而是直接进入Contacts中的联系人详情界面.

常用方法:

assignContactFromEmail (String emailAddress, boolean lazyLookup)
指定联系人的电子邮箱地址.(注:它会先搜索这个号码)
参数:
emailAddress 联系人的电子邮箱地址
lazyLookup 如果设置为true,将不会立即查找这个邮箱地址,直到View被点击时.(注:是否延迟匹配电子邮件)


assignContactFromPhone (String phoneNumber, boolean lazyLookup)
为联系人指定一个电话号码.
参数:
phoneNumber 联系人的电话号码
lazyLookup 如果设置为true,将不会立即查找这个电话号码,直到View被点击时


assignContactUri (Uri contactUri)
指定和QuickContactBadge关联的联系人URI.注意,这里只是显示QuickContact窗口,并不为你绑定联系人图片.
参数
contactUri CONTENT_URI或CONTENT_LOOKUP_URI其中一种风格的URI.


setMode (int size)
设置QuickContact的窗口模式.如下选项:MODE_SMALL、MODE_MEDIUM、MODE_LARGE.(注:默认为QuickContact.MODE_MEDIUM,设置为MODE_LARGE时会同时显示联系人名称)

实例:

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:orientation="vertical" >    <TextView        android:id="@+id/TextView01"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:text="Sample Quick Contact Badges"        tools:ignore="HardcodedText" >    </TextView>    <Button        android:id="@+id/pick_contact"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:onClick="onPickContact"        android:text="Pick Contact"        tools:ignore="HardcodedText" >    </Button>    <QuickContactBadge        android:id="@+id/badge_small"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:src="@drawable/ic_launcher" >    </QuickContactBadge>    <QuickContactBadge        android:id="@+id/badge_medium"        android:layout_width="wrap_content"        android:layout_height="wrap_content" >    </QuickContactBadge>    <FrameLayout        android:id="@+id/badge_holder_large"        android:layout_width="wrap_content"        android:layout_height="wrap_content" >    </FrameLayout></LinearLayout>

package com.light.android.study;import android.app.Activity;import android.content.Intent;import android.net.Uri;import android.os.Bundle;import android.provider.ContactsContract;import android.provider.ContactsContract.Contacts;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.FrameLayout;import android.widget.QuickContactBadge;public class MainActivity extends Activity {    private static final int CONTACT_PICKER_RESULT = 0x1234;@Overridepublic void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);QuickContactBadge badgeSmall = (QuickContactBadge) findViewById(R.id.badge_small);   //指定联系人的电子邮箱地址badgeSmall.assignContactFromEmail("any@gmail.com", true);   badgeSmall.setMode(ContactsContract.QuickContact.MODE_SMALL);  QuickContactBadge badgeMedium = (QuickContactBadge) findViewById(R.id.badge_medium);   //为联系人指定一个电话号码。badgeMedium.assignContactFromPhone("831-555-1212", true);   badgeMedium.setImageResource(R.drawable.ic_launcher);  Button pickContact = (Button) findViewById(R.id.pick_contact);pickContact.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {onPickContact(v);}});}/** * 选择通讯录中的联系人 * @param view */public void onPickContact(View view) {       Intent contactPickerIntent = new Intent(Intent.ACTION_PICK,               Contacts.CONTENT_URI);      startActivityForResult(contactPickerIntent, CONTACT_PICKER_RESULT);   }   @Override  protected void onActivityResult(int requestCode, int resultCode, Intent data) {       if (resultCode == RESULT_OK) {           switch (requestCode) {           case CONTACT_PICKER_RESULT:           //将选中的联络人显示出来            Uri contactUri = data.getData();               FrameLayout badgeLargeHolder = (FrameLayout) findViewById(R.id.badge_holder_large);               QuickContactBadge badgeLarge = new QuickContactBadge(this);               badgeLarge.assignContactUri(contactUri);               badgeLarge.setMode(ContactsContract.QuickContact.MODE_LARGE);               badgeLarge.setImageResource(R.drawable.ic_launcher);               badgeLargeHolder.addView(badgeLarge);               break;           }       }   }  }

<uses-permission android:name="android.permission.READ_CONTACTS"/>

效果图:









更多相关文章

  1. Android用户界面 UI组件--AdapterView及其子类(二) AdapterViewA
  2. Android软键盘显示模式及打开和关闭方式
  3. android 电池(二):android关机充电流程、充电画面显示
  4. Android软键盘显示模式及打开和关闭方式
  5. android 1.6 联系人
  6. android兼容huawei手机刘海屏解决方案
  7. android兼容huawei手机刘海屏解决方案
  8. Android之系统自带的文字外观设置及实际显示效果图
  9. android兼容oppo手机刘海屏解决方案

随机推荐

  1. sql2005指定字段插入空格。
  2. 请问图片存到MySQL服务器中的时候如何操
  3. mysql 全表扫描、全索引扫描、索引覆盖(
  4. docker应用-6(mysql+mycat 搭建数据库集群
  5. mysql数据库的主从同步过程详述
  6. mysql参数优化辅助工具之tuning-primer.s
  7. sql 存储过程参数为空则不作为条件
  8. Python3.6实现scrapy框架爬取数据并将数
  9. >的EF6 SQL生成。
  10. Sql经纬度计算与C#经纬度计算