Android 標籤控制元件
轉載:http://blog.csdn.net/wangjinyu501/article/details/38089061
在有的應用中可能需要設定一些標籤來方便用去去查詢某些資訊,比如手機助手或者購物軟體之類都會有一些標籤。對於軟體開發初期來說,直接使用TextView、Button實現是最為簡單的一種方式。但是這種方法也有其侷限性,比如不能控制換行、耦合性低等缺點。所以除了解決這些問題之外,最好能夠封裝一個類庫出來,方便以後使用。 首先新建一個Tag類,- import java.io.Serializable;
- public class Tag implements Serializable {
- /**
- *
- */
- private static final long serialVersionUID = 2684657309332033242L;
- private int backgroundResId ;
- private int id ;
- private boolean isChecked ;
- private int leftDrawableResId ;
- private int rightDrawableResId ;
- private String title;
- public Tag() {
- }
- public Tag( int paramInt, String paramString) {
- this .id = paramInt;
- this .title = paramString;
- }
- public int getBackgroundResId() {
- return this .backgroundResId ;
- }
- public int getId() {
- return this .id ;
- }
- public int getLeftDrawableResId() {
- return this .leftDrawableResId ;
- }
- public int getRightDrawableResId() {
- return this .rightDrawableResId ;
- }
- public String getTitle() {
- return this .title ;
- }
- public boolean isChecked() {
- return this .isChecked ;
- }
- public void setBackgroundResId( int paramInt) {
- this .backgroundResId = paramInt;
- }
- public void setChecked( boolean paramBoolean) {
- this .isChecked = paramBoolean;
- }
- public void setId(int paramInt) {
- this .id = paramInt;
- }
- public void setLeftDrawableResId( int paramInt) {
- this .leftDrawableResId = paramInt;
- }
- public void setRightDrawableResId( int paramInt) {
- this .rightDrawableResId = paramInt;
- }
- public void setTitle(String paramString) {
- this .title = paramString;
- }
- }
- import com.niceapp.lib.tagview.R;
- import android.content.Context;
- import android.util.AttributeSet;
- import android.widget.ToggleButton;
- public class TagView extends ToggleButton {
- private boolean mCheckEnable = true;
- public TagView(Context paramContext) {
- super (paramContext);
- init();
- }
- public TagView(Context paramContext, AttributeSet paramAttributeSet) {
- super (paramContext, paramAttributeSet);
- init();
- }
- public TagView(Context paramContext, AttributeSet paramAttributeSet,
- int paramInt) {
- super (paramContext, paramAttributeSet, 0);
- init();
- }
- private void init() {
- setTextOn( null );
- setTextOff( null );
- setText( "" );
- setBackgroundResource(R.drawable. tag_bg );
- }
- public void setCheckEnable( boolean paramBoolean) {
- this .mCheckEnable = paramBoolean;
- if (!this .mCheckEnable ) {
- super .setChecked( false);
- }
- }
- public void setChecked( boolean paramBoolean) {
- if (this .mCheckEnable ) {
- super .setChecked(paramBoolean);
- }
- }
- }
- <?xmlversion= "1.0"encoding = "utf-8"?>
- <com.niceapp.lib.tagview.widget.TagViewxmlns:android ="http://schemas.android.com/apk/res/android"
- android:layout_width= "wrap_content"
- android:layout_height= "wrap_content"
- android:drawablePadding= "5.0dip"
- android:minHeight= "0.0dip"
- android:paddingBottom= "4.5dip"
- android:paddingLeft= "20.0dip"
- android:paddingRight= "20.0dip"
- android:paddingTop= "4.5dip"
- android:textColor= "#ff000000"
- android:textSize= "16.0sp"/>
因此,控制換行就可以利用這個控制元件去實現,無需重複發明輪子。android-flowlayout功能實現的類是FlowLayout,所以通過繼承這個類來完成標籤控制元件的實現。
- import java.util.ArrayList;
- import java.util.List;
- import com.niceapp.lib.tagview.R;
- import android.content.Context;
- import android.util.AttributeSet;
- import android.util.TypedValue;
- import android.view.View;
- import android.view.View.OnClickListener;
- import android.widget.CompoundButton;
- /**
- * @author kince
- *
- */
- public class TagListView extends FlowLayout implements OnClickListener {
- private boolean mIsDeleteMode;
- private OnTagCheckedChangedListener mOnTagCheckedChangedListener;
- private OnTagClickListener mOnTagClickListener;
- private int mTagViewBackgroundResId;
- private int mTagViewTextColorResId;
- private final List<Tag>mTags = new ArrayList<Tag>();
- /**
- * @param context
-
相關推薦
Android 標籤控制元件
轉載:http://blog.csdn.net/wangjinyu501/article/details/38089061 在有的應用中可能需要設定一些標籤來方便用去去查詢某些資訊,比如手機助手或者購物軟體之類都會有一些標籤。對於軟體開發初期來說,直接使用TextView、B
android商品屬性選擇標籤控制元件,可實現自動換行
一、demo功能 在電商專案中,商品屬性選擇是必不可少的,而且屬性的數目和長度不是固定的,就有了 “標籤選擇”。以下我就借用了開源的AutoFlowLayout控制元件,根據商品屬性選擇要求寫了這個demo,和大家分享 二、程式碼介紹 1.功能 AutoFlo
Android 自定義控制元件之標籤控制元件
一、首先這是效果 二、實現原理 通過繼承ViewGroup,然後在重寫 onMeasure測量每個View的寬度,重新onLayout控制每個控制元件的位置, 並新增點選事件 三、實現 1、在onMeasure方法中得到顯示方式,並得到寬高 int widt
幾種Android表格控制元件
一、LockTableView GitHub:https://github.com/RmondJone/LockTableView 有基本功能(顯示資料),有上拉下拉,有點選事件,但其它功能(如新增按鈕等)需要二次開發。 二、PanelList GitHub:https://
MFC標籤控制元件 CTabCtrl
CTabCtrl 標籤頁使用 引用 TabSheet.h .cpp 新增到專案中 拖入控制元件 tab ctrl 新增變數 型別 TabSheet型別 建立兩個 標籤頁 屬性 border 改為 none&nbs
Android CardView控制元件
相關文章 Android Snackbar控制元件 Android FloatingActionButton控制元件 Android Toolbar控制元件 Android AppBarLayout控制元件 Android CollapsingToolbarLayout控制元件 Andr
Android ViewStub控制元件
前言 使用ViewStub可以實現介面的延遲載入。 1. ViewStub簡單應用 (1) 佈局檔案 layout為載入View,inflatedId為載入後View的id。 <ViewStub android:id="@+id/view_stub"
Android ViewPager控制元件
前言 ViewPager可以實現多個介面的左右滑動。 1. ViewPager簡單應用 (1) 佈局檔案 <android.support.v4.view.ViewPager android:id="@+id/view_pager" android:
android高階控制元件介紹
1. 高階控制元件與低階控制元件區別 高階控制元件需要介面卡 而低階不用 2. 介面卡種類 陣列介面卡 ArrayAdapter new ArrayAdapter<String&
Android學習(六)—— Android高階控制元件
Android高階控制元件 1、ProgressBar 進度條,在執行耗時操作時來顯示,可以提高軟體的友好型。 常用屬性 android:max:進度條的最大值 android:progress:進度條已完成進度值 android:progressDrawable:設定軌道對應的Draw
Android學習(五)—— Android初級控制元件
Android初級控制元件 從今天開始就對Android進行正式的學習,首先先來學習一下初級的控制元件 1、TextView 文字框,用於顯示文字,不可編輯。 常用屬性 android:autoLink 設定是否當文字為URL連結/email/
Android 基礎控制元件(二)
##7.ImageView ImageView直接繼承View,也是非常常用的一種檢視控制元件。 示例程式碼: <ImageView android:id="@+id/testImage" android:layout_width="100dp" a
android 基礎控制元件————TextView
TextView是View的直接子類。它是一個文字顯示控制元件,提供了基本的顯示文字的功能,並且是大部分UI控制元件的父類,因為大部分UI控制元件都需要展示資訊。 如果僅僅是展示文字,那麼TextView的作用就太小了,所以它還預定義了一些類似於HTML的標籤,通過這些標籤可以使TextView
帶你徹底看懂React Native和Android原生控制元件之間的對映關係
此文基於react natve的 September 2018 - revision 5 版本 本人學校畢業後就當了安卓爬坑專業戶,3年來總算爬習慣了,不料今年掉進了RN這個天坑,從此開始了我的悲慘人生。。。Anyway,RN的思想還是值得學習的,今天就從Android的角度開始分析一下react nati
android高階控制元件(ListView) 列表控制元件
在strings中建立一個strings.xml,並定義字串陣列,用於當資料來源 張三 李四 王五 張三丰 abc abb
Android常用控制元件,用執行緒寫一個進度條。
一、事件監聽(三種寫法) 1、標籤上直接繫結監聽方法 public void xxx(View view) 2、 建立監聽器物件,元件再繫結監聽器物件 2.1、匿名內部類 2.2、使用匿名內部類並定義成全域性的屬性 二、文字框(TextView) 1、T
Android 高階控制元件二
一、ScrollView 二、ListView 三、自定義介面卡 BaseAdapter:是所有介面卡類的父類,可以對列表項進行最大限度的定製 自定義介面卡中的方法: getCount : 共有幾條資料 getView : 這個方法的作
Android高階控制元件ListView
BaseAdapter:是所有介面卡類的父類,可以對列表項進行最大限度的定製 1.1 自定義介面卡中的方法 getCount getView getItem getItemId 1.2 LayoutInflater(佈局解析器)
Android常用控制元件
Toast(吐絲框) 是Android中的一種簡易的訊息提示框 ImageView 注意事項:res下面的資源名不能使用大寫字母, 特別是圖片資源中的圖片的檔名, 會造成R.java檔案丟失,改正確後即
Android中控制元件AutoCompleteTextView的使用方法和一些屬性
AutoCompleteTextView一些屬性 <!--completionThreshold:它的值決定了你在AutoCompleteTextView至少輸入幾個字元,它才會具有自動提示的功能--> <!--dropDownWidth設定提示框的寬度-