欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android下Button实现图文混排效果

程序员文章站 2023-11-12 12:54:22
button实现图文混排效果,具体内容如下 一、简介 本文介绍两种图文混排方式 1、android:drawabletop="@drawable/star"实现文字上...

button实现图文混排效果,具体内容如下

一、简介

本文介绍两种图文混排方式

1、android:drawabletop="@drawable/star"实现文字上有图片

当然有上下左右等等

2、spannablestring的imagespan实现图文混排

二、代码实例

效果图:

Android下Button实现图文混排效果

一二三四是用的第一种方式

下面的用的第二种方式 

代码:

fry.activity02

package fry;

import com.example.buttondemo1.r;

import android.app.activity;
import android.graphics.bitmapfactory;
import android.os.bundle;
import android.text.spannable;
import android.text.spannablestring;
import android.text.style.imagespan;
import android.view.motionevent;
import android.view.view;
import android.view.view.onclicklistener;
import android.view.view.onfocuschangelistener;
import android.view.view.ontouchlistener;
import android.widget.button;

public class activity02 extends activity {
  private button btn_big;
  @override
  protected void oncreate(bundle savedinstancestate) {
    // todo auto-generated method stub
    super.oncreate(savedinstancestate);
    setcontentview(r.layout.activity02);
    btn_big=(button) findviewbyid(r.id.btn_big);
    
    //spannablestring的imagespan添加左边图片
    spannablestring spannablestring1=new spannablestring("left");
    imagespan imagespan=new imagespan(this, bitmapfactory.decoderesource(getresources(), r.drawable.image_left));
    spannablestring1.setspan(imagespan, 0, 4, spannable.span_exclusive_exclusive);
    
    //spannablestring的imagespan添加右边图片
    spannablestring spannablestring2=new spannablestring("right");
    imagespan imagespan2=new imagespan(this, bitmapfactory.decoderesource(getresources(), r.drawable.image_right));
    spannablestring2.setspan(imagespan2, 0, 5, spannable.span_exclusive_exclusive);
    
    btn_big.append(spannablestring1);
    btn_big.append("我的按钮");
    btn_big.append(spannablestring2);
  }
}

/buttondemo1/res/layout/activity02.xml

<?xml version="1.0" encoding="utf-8"?>
<linearlayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:orientation="vertical" >
  
  <linearlayout 
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    >
    
    <!--android:drawabletop="@drawable/star"实现文字上有图片 -->
    <button
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="一" 
      android:drawabletop="@drawable/star"
      />
    
    <!--android:drawablepadding="30dp实现文字和文字上的图片中间有30dp的空隙 -->
    <button
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="二" 
      android:drawabletop="@drawable/star"
      android:drawablepadding="30dp"
      />
    
    <button
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="三" 
      android:drawableright="@drawable/star"
      />
    
    <button
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="四" 
      android:drawableleft="@drawable/star"
      />
  </linearlayout>
  
  <button 
    android:id="@+id/btn_big"
    android:layout_width="180dp"
    android:layout_height="200dp"
    
    />
  
</linearlayout>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。