1. 程式人生 > >文字和自定義圖片居中的RadioButton

文字和自定義圖片居中的RadioButton

專案中用到的一個小控制元件,自帶的控制元件滿足不了需求,只能自定義了。
直接看圖片:
這裡寫圖片描述

<com.yjy.yijinyi.view.DrawableCenterRadioButton
                android:layout_marginTop="20dp"
                android:id="@+id/dd"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:checked="true"
android:text="RadioButton" android:textColor="@color/text_color" android:button="@null" android:drawableLeft="@drawable/selector_high_evaluation_radiobutton" /> <RadioButton android:layout_width="match_parent"
android:layout_height="wrap_content" android:text="RadioButton" android:textColor="@color/text_color" android:gravity="center" android:button="@null" android:checked="true" android:drawableLeft="@drawable
/selector_high_evaluation_radiobutton"
/> </LinearLayout>

然後就是java程式碼:

package com.yjy.yijinyi.view;

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.drawable.Drawable;
import android.util.AttributeSet;
import android.widget.RadioButton;

/**
 * Created by 張先生 on 2016/1/22.
 *
 * 自定義RadioButton
 */
public class DrawableCenterRadioButton extends RadioButton {
    public DrawableCenterRadioButton(Context context) {
        super(context);
    }

    public DrawableCenterRadioButton(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public DrawableCenterRadioButton(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
    }

    @Override
    protected void onDraw(Canvas canvas) {
        Drawable[] drawables = getCompoundDrawables();
        if (drawables != null) {
            Drawable drawableLeft = drawables[0];
            if (drawableLeft != null) {
                float textWidth = getPaint().measureText(getText().toString());
                int drawablePadding = getCompoundDrawablePadding();
                int drawableWidth = 0;
                drawableWidth = drawableLeft.getIntrinsicWidth();
                float bodyWidth = textWidth + drawableWidth + drawablePadding;
                canvas.translate((getWidth() - bodyWidth) / 2, 0);
            }
        }
        super.onDraw(canvas);
    }

}

直接貼上複製就可以使用了,別忘了更換包名。

相關推薦

文字定義圖片居中RadioButton

專案中用到的一個小控制元件,自帶的控制元件滿足不了需求,只能自定義了。 直接看圖片: <com.yjy.yijinyi.view.DrawableCenterRadioButton android:layout_

在Vue專案使用quill-editor帶樣式編輯器(更改插入圖片視訊) 運用vue-quilt-editor編寫富文字編輯器 定義圖片路徑 獲取後臺返回路徑

一、首先在main.js  引入 vue-quilt-editorimport VueQuillEditor from 'vue-quill-editor'import 'quill/dist/quill.core.css'import 'quill/dist/quill.s

UIButton圖片文字控制元件位置定義(圖片居右文字居左、圖片居中文字居中圖片居左文字消失等)

在開發中經常會碰到需要對按鈕中的圖片文字位置做調整的需求。 第一種方式是通過設定按鈕中圖片文字的偏移量。通過方法setTitleEdgeInsets和setImageEdgeInsets實現 程式碼如下: /*!**方式一***/ - (void)updateBtnSty

django上傳圖片 後臺上傳定義上傳

後臺管理,上傳圖片1.在static中建立media資料夾,media資料夾中再建立一個資料夾用來存放檔案。2.專案設定中上傳儲存路徑MEDIA_ROOT = os.path .join(BASE_DIR,'static/media')3在model中設計模型類其中  # 型

django 定義圖片上傳路徑上傳檔名

圖片上傳中,如果不對上傳的檔名做處理,很容易引起檔名重複,這會覆蓋之前上傳的圖片,django提供了自定義上傳檔名的方法。 def generate_filename(self, instance, filename): """ Ap

TFRecords的建立讀取——定義圖片資料的製作

TFRecords檔案的建立和讀取 首先是檔案結構,這是我的檔案結構,大家可以自定義檔案位置,但是結構應該如下:首先是主資料夾tensorflow_application/jpg,該資料夾下有兩個次資料夾001和002,001資料夾的下面是一類圖片;002資料

TP5 微信分享朋友圈介面顯示定義圖片標題

在tp5框架下對接微信分享朋友圈介面,並顯示圖片和標題。準備步驟:1,先登入微信公眾平臺進入“公眾號設定”的“功能設定”裡填寫“JS介面安全域名”。2,獲取公眾號對應的 appid 和 appsecret。3.公眾號取得認證。不羅嗦,直接上程式碼:1,js 程式碼,在需要分享

element-ui vue-quill-editor 富文字編輯框定義圖片插入

前言 因為使用者需要編輯自定義頁面,這裡就要用到富文字編輯框,可以插入圖片插入視訊。我選擇了vue-quill-editor。然後問題來了,現實需求和引入的框架衝突。 問題引入 vue-quill-editor預設的圖片插入方式,是直接將圖

Django定義圖片檔案上傳路徑(upload_to)的2種方式

最近在做一個仿知乎網站的專案了,裡面涉及很多圖片和檔案上傳。趁此機會我給大家總結下Django自定義圖片和檔案上傳路徑的2種方式吧。方法1: 在Django模型中定義upload_to選項。Django

如何用TensorFlow訓練識別/分類定義圖片

很多正在入門或剛入門TensorFlow機器學習的同學希望能夠通過自己指定圖片源對模型進行訓練,然後識別和分類自己指定的圖片。但是,在TensorFlow官方入門教程中,並無明確給出如何把自定義資料輸入訓練模型的方法。現在,我們就參考官方入門課程《Deep MNIST fo

1. PMD 使用,編譯定義規則

自定義 pmd 規則 一 PMD簡介PMD是一款代碼靜態檢查工具,可以檢查出很多代碼中潛在的bug以及讓人感到疑惑的代碼,具體大家可以百度下。二 PMD源代碼下載下載地址:https://github.com/pmd/pmd/tree/pmd/5.5.x需要註意的是註意選擇branch,一般選擇最

DOM內容操作定義、樣式改變

abcdefg result 定義 tel class abcde inner 參數 fun 自定義 function 方法名或函數名(參數1,參數2,、、、) { 方法體; return返回值;(可不寫) } function a

dedecmsV5.7定義圖片字段調用方法

類型 tmp lds dedecms blank www tpi java 解決方案 正常情況下,在列表頁(也就是 {dede:list}標簽)調用附加的圖片類型字段則會出現Fatal error: Call to a member function GetInnerTex

EL函數定義EL函數

asm pex cli servle cti 編寫代碼 lower sed 添加 簡介 EL原本是JSTL1.0中的技術(所以EL和JSTL感情如此好就是自然的了),但是從JSP2.0開始,EL就分離出來納入了JSP的標準了。但是EL函數還是和JSTL技術綁定在一起。下面將

Android零基礎入門第39節:ListActivity定義列表項

arraylist component save 高速 ram 如果 view設置 ren 屬性 相信通過前兩期的學習,以及會開發最簡單的一些列表界面了吧,那麽本期接著來學習更多方法技巧。 一、使用ListActivity 如果程序的窗口僅僅需要

java Collections.sort()實現List排序的默認方法定義方法

public get object 順序 text main 輸出 any 比較 1.java提供的默認list排序方法 主要代碼: List<String> list = new ArrayList();list.add("劉媛媛"); list.add("王

freemarker實現定義指令定義函數

數據 dir variables macro 內置 引擎 eem fig turn 自定義指令: 1.指令在前臺實現   <#macro name param1,param2,param3...paramN>   </#macro> 2.指令在後臺實

idea設置定義圖片

ges idea .com ima http -1 定義 9.png nbsp 看圖操作哈: 1、 2、 逼格滿滿: idea設置自定義圖片

監控linux的系統資源定義進程的cpu 內存占用。

until 分享 == lena filename src end available eve 1 #coding=utf8 2 import time 3 import psutil 4 from pprint import pprint 5 6 fro

批量創建用戶賬號定義回收站

linux用戶與組1、批量創建(zhangsan lisi wangwu)賬號[root@zab ~]# vim f2[root@zab ~]# cat f2zhangsan:x:560:560::/home/zhangsan:/bin/bash ----/tec/passwd格式lisi:x:550:55