Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android自定義“圖片+文字”控件四種實現方法之 二--------個人最推薦的一種

Android自定義“圖片+文字”控件四種實現方法之 二--------個人最推薦的一種

編輯:關於Android編程

第二種方法也要新建一個圖片+文字的xml布局文件,然後寫一個類繼承自LinearLayout。在主程序裡實例化並設置相應參數。這種方式也是我最推薦的一種。 第一部分:myimgbtn_layout.xml [html]  <?xml version="1.0" encoding="utf-8"?>   <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"       android:layout_width="fill_parent"       android:layout_height="fill_parent"       android:alpha="20"       android:background="#87CE"       android:orientation="vertical"        >          <ImageView           android:id="@+id/img"           android:layout_width="wrap_content"           android:layout_height="wrap_content"           android:layout_gravity="center_horizontal"           android:paddingBottom="5dip"           android:paddingTop="5dip" />       <TextView            android:id="@+id/text"           android:layout_width="wrap_content"           android:layout_height="wrap_content"              android:textColor="#FF6100"              android:textSize="30dip"             android:layout_gravity="center_vertical"/>            </LinearLayout>     第二部分,與之布局相對應的MyImgBtn.java 文件: [java]  package yan.guoqi.testimgbtn;      import android.content.Context;   import android.graphics.Color;   import android.util.AttributeSet;   import android.view.LayoutInflater;   import android.view.MotionEvent;   import android.view.View;   import android.view.View.OnTouchListener;   import android.widget.ImageView;   import android.widget.LinearLayout;   import android.widget.TextView;      public class MyImgBtn extends LinearLayout {          private ImageView mImgView = null;       private TextView mTextView = null;       private Context mContext;                 public MyImgBtn(Context context, AttributeSet attrs) {           super(context, attrs);           // TODO Auto-generated constructor stub           LayoutInflater.from(context).inflate(R.layout.myimgbtn_layout, this, true);           mContext = context;           mImgView = (ImageView)findViewById(R.id.img);           mTextView = (TextView)findViewById(R.id.text);                                     }               /*設置圖片接口*/       public void setImageResource(int resId){           mImgView.setImageResource(resId);       }              /*設置文字接口*/       public void setText(String str){           mTextView.setText(str);       }       /*設置文字大小*/       public void setTextSize(float size){           mTextView.setTextSize(size);       }               //     /*設置觸摸接口*/   //    public void setOnTouch(OnTouchListener listen){   //        mImgView.setOnTouchListener(listen);   //        //mTextView.setOnTouchListener(listen);   //    }      }     第三部分,主布局main.xml: [html]  <?xml version="1.0" encoding="utf-8"?>   <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"       android:layout_width="fill_parent"       android:layout_height="fill_parent"       android:orientation="vertical"        android:background="@drawable/main_background2">          <TextView           android:layout_width="fill_parent"           android:layout_height="wrap_content"           android:text="@string/hello" />       <yan.guoqi.testimgbtn.MyImgBtn           android:id="@+id/MyIBtn_1"           android:layout_width="wrap_content"           android:layout_height="wrap_content"           android:layout_gravity="center_horizontal"                   android:clickable="true"           android:focusable="true"                 />      </LinearLayout>   第四部分,主程序: [java]  package yan.guoqi.testimgbtn;      import android.app.Activity;   import android.os.Bundle;   import android.view.View;   import android.view.View.OnClickListener;   import android.widget.Toast;      public class TestImgBtnActivity extends Activity {             private MyImgBtn MyIBtn1 = null;              /** Called when the activity is first created. */       @Override       public void onCreate(Bundle savedInstanceState) {           super.onCreate(savedInstanceState);           setContentView(R.layout.main);                      MyIBtn1 = (MyImgBtn)findViewById(R.id.MyIBtn_1);           MyIBtn1.setImageResource(R.drawable.ic_launcher);           MyIBtn1.setText("歡迎光臨");           MyIBtn1.setTextSize(24.0f);           //MyIBtn1.setOnTouch(new MyOnTouchListener());           MyIBtn1.setOnClickListener(new OnClickListener() {                              public void onClick(View arg0) {                   // TODO Auto-generated method stub                   Toast.makeText(TestImgBtnActivity.this,                                  "您好",  www.2cto.com                                Toast.LENGTH_SHORT)                                  .show();                                  }           });       }   }     這種方法很直觀簡單,與之第一種用Gallery方法而言更容易理解。就是自定義一個類,第一種方法雖然不用自定義類,但是Gallery相關的適配器配置和那個View相關的如果第一次會不大習慣。這種效果也不錯,圖就不貼了。尤其適合做那種背景是純色,裡面嵌套圖片+文字。就是360手機安全衛士的主窗口,大家可以看下。應該就是為這種方式做的。美中不足的是,360手機安全衛士的主窗口裡,你點擊一下,背景會變。也就是說這還缺少個onTouchListener,稍後我補上。
  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved