Android图片显示ICON——基础编

来源:互联网 发布:疑心暗鬼单人动作数据 编辑:程序博客网 时间:2024/04/28 18:50

Android图片显示ICON——基础编

今天写了一编小的图片显示代码,是从ICON的图片的显示结果来说明如果从以后的过程中更加适合里面去。先让我们看一下:图:

让我们看一下类中是代码:

package com.smart.widget;import android.content.Context;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.graphics.Canvas;import android.graphics.Rect;import android.util.AttributeSet;import android.widget.TextView;public class IconText  extends TextView{//  命名空间的值private final String namespace = "http://net.blogjava.mobile";//  图像资源IDprivate int resourceId = 0;private Bitmap bitmap;public IconText(Context context, AttributeSet attrs){super(context, attrs);resourceId = attrs.getAttributeResourceValue(namespace, "iconSrc", 0);if (resourceId > 0)bitmap = BitmapFactory.decodeResource(getResources(), resourceId);}@Overrideprotected void onDraw(Canvas canvas){if (bitmap != null){//  从原图上截取图像的区域,在本例中为整个图像Rect src = new Rect();//  将截取的图像复制到bitmap上的目标区域,在本例中与复制区域相同Rect target = new Rect();src.left = 0;src.top = 0;src.right = bitmap.getWidth();src.bottom = bitmap.getHeight();int textHeight = (int) getTextSize();target.left = 0;//  计算图像复制到目录区域的纵坐标。由于TextView中文本内容并不是从最顶端开始绘制的,因此,需要重新计算绘制图像的纵坐标target.top = (int) ((getMeasuredHeight() - getTextSize()) / 2) + 1;target.bottom = target.top + textHeight;//  为了保证图像不变形,需要根据图像高度重新计算图像的宽度target.right = (int) (textHeight * (bitmap.getWidth() / (float) bitmap.getHeight()));//  开始绘制图像canvas.drawBitmap(bitmap, src, target, getPaint());//  将TextView中的文本向右移动一定的距离(在本例中移动了图像宽度加2个象素点的位置)canvas.translate(target.right + 2, 0);}super.onDraw(canvas);}}

main代码:
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:mobile="http://www.baidu.com"    android:orientation="vertical"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    >            <com.smart.widget.IconText    android:layout_width="fill_parent"    android:layout_height="wrap_content"    android:text="第一个笑脸"    mobile:iconSrc="drawable/small"    />        <com.smart.widget.IconText    android:layout_width="fill_parent"    android:layout_height="wrap_content"    android:text="第二个笑脸"    android:textSize="24dp"    mobile:iconSrc="drawable/small"    />        <com.smart.widget.IconText    android:layout_width="fill_parent"    android:layout_height="wrap_content"    android:text="第三个笑脸"    android:textSize="36dp"    mobile:iconSrc="drawable/small"    />        <com.smart.widget.IconText    android:layout_width="fill_parent"    android:layout_height="wrap_content"    android:text="第四个笑脸"    android:textSize="48dp"    mobile:iconSrc="drawable/small"    />        <com.smart.widget.IconText    android:layout_width="fill_parent"    android:layout_height="wrap_content"    android:text="第五个笑脸"    android:textSize="36dp"    mobile:iconSrc="drawable/small"    />        <com.smart.widget.IconText    android:layout_width="fill_parent"    android:layout_height="wrap_content"    android:text="第六个笑脸"    android:textSize="24dp"    mobile:iconSrc="drawable/small"    />    <com.smart.widget.IconText    android:layout_width="fill_parent"    android:layout_height="wrap_content"    android:text="第七个笑脸"    mobile:iconSrc="drawable/small"    />            </LinearLayout>
原创粉丝点击