您現在的位置是:電腦技術吧?>? 基礎知識 ??>??自定義壁紙 文字,手機壁紙自定義文字??>??正文詳情

自定義壁紙 文字,手機壁紙自定義文字

漢湛英2019-12-17 16:22:40 人圍觀
簡介照片加文字本文給出了一個Android實現的文本圖片自定義按鈕的實例。與您分享以供參考。具體分析如下:在Android開發中,經常需要使用帶有文本和圖片的按鈕。讓我們解釋美圖秀秀怎么

本文實例講述了Android實現自定義帶文字和圖片Button的方法。

分享給大家供大家參考。

具體分析如下:  在Android開發中經常會需要用到帶文字和圖片的button,下面來講解一下常用的實現辦法。

  一.用系統自帶的Button實現  最簡單的一種辦法就是利用系統自帶的Button來實現,這種方式代碼量最小。

在Button的屬性中有一個是drawableLeft,這個屬性可以把圖片設置在文字的左邊,但是這種方式必須讓icon的背景色是透明的,如果icon的背景色不是透明的話,會導致點擊按鈕時icon部分的背景色不會發生變化。

  主要代碼:  ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Button android:[email protected] id/bt3 android:layout_marginTop=4dp android:layout_width=wrap_content android:layout_height=wrap_content android:text=火車 android:textSize=16sp android:textColor=#000000 android:paddingLeft=5dp android:paddingTop=5dp android:paddingRight=5dp android:paddingBottom=5dp android:[email protected]/line_bus_icon android:[email protected]/button_bg /Button   實現效果:

  如果要讓文字在圖標下方,改成drawableTop即可。

  二.繼承系統的Button然后進行重繪  ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 package com.test; import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.util.AttributeSet; import android.widget.Button; public class ImageTextButton2 extends Button { private int resourceId = 0; private Bitmap bitmap; public ImageTextButton2(Context context) { super(context,null); } public ImageTextButton2(Context context,AttributeSet attributeSet) { super(context, attributeSet); this.setClickable(true); resourceId = R.drawable.icon; bitmap = BitmapFactory.decodeResource(getResources(), resourceId); } public void setIcon(int resourceId) { this.bitmap = BitmapFactory.decodeResource(getResources(), resourceId); invalidate(); } @Override protected void onDraw(Canvas canvas) { // TODO Auto-generated method stub // 圖片頂部居中顯示 int x = (this.getMeasuredWidth() - bitmap.getWidth())/2; int y = 0; canvas.drawBitmap(bitmap, x, y, null); // 坐標需要轉換,因為默認情況下Button中的文字居中顯示 // 這里需要讓文字在底部顯示 canvas.translate(0,(this.getMeasuredHeight()/2) - (int) this.getTextSize()); super.onDraw(canvas); } }   然后再布局文件中調用:  ? 1 2 3 4 5 6 7 8 9 10 com.test.ImageTextButton2 android:[email protected] id/bt2 android:layout_marginTop=10dp android:text=hello android:textSize=15dp android:textColor=#000000 android:layout_width=60dp android:layout_height=70dp android:[email protected]/button_bg /   注意,在xml文件中調用時,對于layout_width和layout_height兩個屬性千萬不能用wrap_content,否則會導致按鈕顯示出來的只有文字部分。

  三.繼承布局文件  分析發現一個帶文字和icon的button其實可以看成一個線性布局或相對布局,因此可以繼承布局來實現。

  先實現一個button的布局文件img_text_bt.xml:  ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 ?xml version=1.0 encoding=utf-8? RelativeLayout xmlns:android=http://schemas.android.com/apk/res/android android:layout_width=wrap_content android:layout_height=wrap_content ImageView android:[email protected] id/imgview android:layout_alignParentTop=true android:layout_width=wrap_content android:layout_height=wrap_content android:layout_centerInParent=true android:[email protected]/icon /ImageView TextView android:[email protected] id/textview android:layout_width=wrap_content android:layout_height=wrap_content android:layout_centerInParent=true android:[email protected]/imgview /TextView /RelativeLayout   然后去繼承RelativeLayout布局:  ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 package com.test; import android.content.Context; import android.util.AttributeSet; import android.view.LayoutInflater; import android.widget.ImageView; import android.widget.RelativeLayout; import android.widget.TextView; public class ImageTextButton1 extends RelativeLayout { private ImageView imgView; private TextView textView; public ImageTextButton1(Context context) { super(context,null); } public ImageTextButton1(Context context,AttributeSet attributeSet) { super(context, attributeSet); LayoutInflater.from(context).inflate(R.layout.img_text_bt, this,true); this.imgView = (ImageView)findViewById(R.id.imgview); this.textView = (TextView)findViewById(R.id.textview); this.setClickable(true); this.setFocusable(true); } public void setImgResource(int resourceID) { this.imgView.setImageResource(resourceID); } public void setText(String text) { this.textView.setText(text); } public void setTextColor(int color) { this.textView.setTextColor(color); } public void setTextSize(float size) { this.textView.setTextSize(size); } }   然后就可以在需要的xml文件中調用:  ? 1 2 3 4 5 6 com.test.ImageTextButton1 android:[email protected] id/bt1 android:layout_width=wrap_content android:layout_height=wrap_content android:[email protected]/button_bg /   再在Activity中使用:  ? 1 2 3 4 5 6 7 8 9 10 bt1 = (ImageTextButton1)findViewById(R.id.bt1); bt1.setText(icon); bt1.setTextColor(Color.rgb(0, 0, 0)); bt1.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub Toast.makeText(MainActivity.this, bt1被點擊了, Toast.LENGTH_SHORT).show(); } });   三種不同方法最后的運行效果:

  完整實例代碼點擊此處本站下載。

  希望本文所述對大家的Android程序設計有所幫助。

版權聲明:本文由 漢湛英 整理編輯。

原標題:qq氣泡自定義輸入文字,特殊文字

轉載注明出處:http://www.dn9ww09s.icu/basics/15515.html

文章評論

    共有條評論來說兩句吧...

    用戶名:

    驗證碼:

作者推薦

  • 在編譯時if怎么用,編譯時注解

    在編譯時if怎么用,編譯時注解 相關圖片編譯注解和運行時注解本文主要介紹PHP編譯安裝中常見錯誤的解決方法。本文介紹了PHP編譯和安裝中的大多數錯誤,并提供了解決方案。對于你的朋友,請參考這篇文章是在https://co編譯...

  • sqlserver數據庫字段說明,sqlserver數據庫增加字段

    sqlserver數據庫字段說明,sqlserver數據庫增加字段 相關圖片sqlserver數據庫特點有時我們想知道這個值來自哪個表和字段,搜索Internet,找到更好的方法,并通過存儲過程實現它。只要傳入一個要查找的值,就可以找到該值所在的表和字段名。前提...

  • 排序命令,excel命令

    排序命令,excel命令 相關圖片對于excel數據庫排序是按照我確信您對redis sort命令了解不多,所以我編譯了一些redissort命令的使用方法和示例,希望這些示例能對您有所幫助。Redis sort是Redislinux按時間排序...

  • javascript提交表單,js自動提交表單

    javascript提交表單,js自動提交表單 相關圖片form表單提交多條數據本文主要介紹了對JSON格式表單數據提交相關資料的深入分析。供您參考的是,以JSON編碼格式提交表單數據是HTML5對web發展和演進的又一貢獻。以前,我們的Hajax提交...

  • 電腦用戶鎖定怎么解除,用戶已被鎖定

    電腦用戶鎖定怎么解除,用戶已被鎖定 相關圖片華為賬號鎖定怎么解除甲骨文解鎖Scott/Tiger用戶。一。為Scott用戶驗證當前系統的狀態:從DBA中選擇*[users where upper(username)='Scowin10賬戶鎖定多久解除...

  • pyramid scheme,schemes什么意思

    pyramid scheme,schemes什么意思 相關圖片qq音樂url schemes在IOS應用程序中,經常可以看到一些應用程序通過單擊操作直接跳轉到app store頁面。首先,奇怪的是,這個第三方應用程序是如何在IOS系統應用程序交互中實現url schemes 微...

  • object獲取值,獲取textbox的值

    object獲取值,獲取textbox的值 相關圖片textarea怎么獲取值本文主要介紹如何獲取DataRow[]的值。您可以引用DataRow[]Dr=DT。Select(T1=a');結果是一個數組,您只需要循環該數組。代碼如下:Sjs獲取標簽的值...

  • 數據怎么存入數據庫,文件存入數據庫

    數據怎么存入數據庫,文件存入數據庫 相關圖片數據庫可以存數組嗎用ASP編寫網站應用程序需要很長時間,不可避免地會產生各種問題。恐怕最常見的問題是如何上傳文件到服務器,尤其是上傳圖片。比如,如果你想在自己的社區實...

  • php讀取文件夾,php文件夾

    php讀取文件夾,php文件夾 相關圖片php讀取文件函數本文的例子描述了PHP從文件夾中隨機讀取文件的方法。與您分享以供參考。具體實現方法如下:?12345678910131415161718192021222325php讀取空間指定文件夾內容...

  • 程序是由程序員編寫的,程序是程序員編寫的

    程序是由程序員編寫的,程序是程序員編寫的 相關圖片程序員嗎為什么要記錄?你將在六個月內使用你的代碼。我覺得首先從個人利益的角度來解釋這個問題很有吸引力。最好的記錄理由是你將在六個月內使用你的代碼。您六個月前編寫的...

熱評文章

  • 傳值和傳址,傳值與傳值

    傳值和傳址,傳值與傳值 相關圖片傳值調用//****在ASCX用戶控件中,定義要接收參數的屬性示例:private string mbooktitle;public string booktite{gjs傳值...

  • 自定義標簽在哪,自定義標簽是什么意思

    自定義標簽在哪,自定義標簽是什么意思 相關圖片自定義個性標簽大全一。JSP標記的好處不再冗長。數據字典是使用的下拉框。只要定義了字典,就會顯示字典的可用內容。只要定義了字典和屬性值,就會顯示字典的顯示值。2。首先定...

  • access數據庫和mysql,access數據庫與mysql

    access數據庫和mysql,access數據庫與mysql 相關圖片mysql數據庫一。軟件簡介db2mysql是一款能夠自動將access數據庫文件轉換成相應SQL代碼的軟件。它可以廣泛應用于access數據庫到MySQL或其他類型SQL數據mysql access...

  • 如何將數據導入excel,將excel數據導入word

    如何將數據導入excel,將excel數據導入word 相關圖片excel數據導入mysql簡介:工程中經常使用excel導入數據和excel導入數據庫的功能。相關內容已搜索過。總結使用的方案。方案一npoi npoi是。POI項目的網絡版本。POI是表格數據導入cad...

  • 3d動態全景 華為,福彩3D

    3d動態全景 華為,福彩3D 相關圖片動態鎖屏目前,我們忽略z軸(以便我們可以在平面中更清楚地看到),并且假設z軸坐標都是0。假設游戲中有兩個軌跡點在動態增加和變化。最后,這兩個變化軌跡點的組合就是它們生...

  • 點擊文本進行復制,html文本可點擊

    點擊文本進行復制,html文本可點擊 相關圖片點擊單元格出現文本本文的示例描述了JavaScript通過單擊自動選擇textarea文本的方法。與您分享以供參考。具體實現方法如下:?1234texrea rows=10 co如何設置網頁點擊文本就可以復制...

  • C內核開發,IDEA可以開發C號碼

    C內核開發,IDEA可以開發C號碼 相關圖片linux系統下C開發步驟1:創建一個項目start Xcode-file-New-project。然后創建一個IOS單視圖應用程序。在這里我們將其命名為類別。步驟2:立即創建類別開源C開發工具...

  • ios有psp模擬器嗎,ios用psp模擬器

    ios有psp模擬器嗎,ios用psp模擬器 相關圖片蘋果psp模擬器卡很多童鞋喜歡在PSP上玩游戲,所以他們需要PSP設備嗎?現在有一個流行的PSP模擬器ppssp,它不僅可以在電腦上使用,也可以在Android手機蘋果手機上使用蘋果玩psp模擬器...

  • A/C,C-5

    A/C,C-5 相關圖片7c本文共享了使用objective C從遠程url下載圖片的兩種方法,它們都用于個人項目。這些建議是向您簡要介紹的,可供需要的小伙伴參考。目標C從遠程URL下載圖c=...

  • 掛起線程,websphere線程掛起

    掛起線程,websphere線程掛起 相關圖片linux線程掛起但有時,我們希望主線程等待IO操作完成。例如,在主線程創建文件夾后,等待完成,然后在文件夾中創建文件。nsobject類有一個方法performselectorQt線程的掛起和恢復...

關注微信

变脸官网查询