EditText之自定义边框颜色

有俩种方式可以达到效果

一种是网上比较推崇的用图作背景,另一种则是自绘

图作背景的:

首先重新定义一个style。在values文件夹下新建一个style.xml文件:

<?xml version="1.0" encoding="utf-8"?>

<resources>

<style name="my_edittext_style" parent="@android:style/Widget.EditText">

<item name="android:background">@drawable/my_edittext</item>

</style>

</resources>

接下来在drawable里添加my_edittext.xml:内容如下

<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_focused="true" android:drawable="@drawable/editbox_focus" />      <item android:drawable="@drawable/editbox_normal" />

</selector>

其中editbox_normal为正常情况下的编辑框图片,editbox_focus为选中下的编辑框图片

定义好了这两个文件之后就可以用以下方式使用:

<EditText

style="@style/my_edittext_style"

android:text="My EditText"

android:layout_width="fill_parent"

android:layout_height="wrap_content">

</EditText>

以上用图做背景的部分是引用http://blog.csdn.net/sinat_31998357/article/details/49491603里的

PS:图最好用九宫图 这样会自适应的

自绘的方式:

先自定义一个EditText:

package com.MyView;

import android.content.Context;

import android.graphics.Canvas;

import android.graphics.Color;

import android.graphics.Paint;

import android.graphics.RectF;

import android.graphics.Paint.Style;

import android.util.AttributeSet;

import android.widget.EditText;

public class MyEditText extends EditText{

public MyEditText(Context context, AttributeSet attrs) {

super(context, attrs);

}

@Override

protected void onDraw(Canvas canvas) {

Paint paint = new Paint();

paint.setStyle(Style.STROKE);

paint.setStrokeWidth(2);

if(this.isFocused() == true)

paint.setColor(Color.parseColor("#122e29"));

else

paint.setColor(Color.rgb(0,173,173));

canvas.drawRoundRect(new RectF(2+this.getScrollX(), 2+this.getScrollY(), this.getWidth()-3+this.getScrollX(), this.getHeight()+ this.getScrollY()-1), 3,3, paint);

super.onDraw(canvas);

}

}

xml里引用:

<View

android:id="@+id/view"

android:focusable ="true"

android:gravity="center"

android:layout_x = "12dip"

android:layout_y = "402dip"

android:layout_width="104dip"

android:layout_height="46dip"

android:background = "#fffef9"

/>

<com.MyView.MyEditText

android:id="@+id/tv_state"

android:focusable ="true"

android:gravity="center"

android:layout_x = "10dip"

android:layout_y = "400dip"

android:layout_width="110dip"

android:layout_height="50dip"

android:background = "#00000000"//背景透明色

/>

弄一个View在EditText下面的目的是设置输入框内部颜色,如果直接设置EditText背景色的话,圆角矩形那不太好处理,如果在onDraw里画背景色的话,这样光标就会不显示,被遮住了

时间: 2025-01-12 16:30:30

EditText之自定义边框颜色的相关文章

圆形图片带有边框可以自定义边框颜色

最近需要一个圆形的头像,但是还需要实现带有边框边框具有颜色,于是发现了一个不错的自定义圆形图片circleimageview 废话不多说,先感谢 文章作者:http://blog.csdn.net/nupt123456789/article/details/24886451 源码作者:https://github.com/hdodenhof/CircleImageView 使用方式请参考码源,里面介绍了非常简单也很清楚了 主要就是下边这几句话 Gradle dependencies { ...

Android之EditText自定义边框和边框颜色(转载)

介绍一种比较常见的用法 第一步:准备两张图片大小一样,颜色不同的图片.图片名称分为:editbox_focus.png和editbox_normal.png 放入工程的drawable文件夹下. 第二步:在drawable文件下创建 my_edittext.xml文件 内容如下: <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.a

Edittext样式的自定义设置(自定义边框和边框颜色)

Edittext改变边框颜色 第一步:为了更好的比较,准备两个一模一样的EditText(当Activity启动时,焦点会在第一个EditText上,如果你不希望这样只需要写一个高度和宽带为0的EditText即可避免,这里就不这么做了),代码如下: <EditText android:layout_width="fill_parent" android:layout_height="36dip" android:background="@drawa

EditText之边框颜色

EditText的自带属性里没有设置边框颜色的 有俩种方式可以达到效果 一种是网上比较推崇的用图作背景,另一种则是自绘 图作背景的: 首先重新定义一个style.在values文件夹下新建一个style.xml文件: <?xml version="1.0" encoding="utf-8"?> <resources> <style name="my_edittext_style" parent="@andr

EditText自定义边框背景与动态检测用户输入

一.EditText自定义边框背景 1.效果演示 2.代码实现 (1)res/drawable/shape_edit_normal.xml 功能:编辑框没获得焦点时,使用该shape.<shape.../>为根元素的ShapeDrawable资源,主要用于定义一个基本的几何图形,如矩形.圆形.线条等. <solid.../>子元素用于指定填充集合图形的的颜色: <corners.../>子元素用于定义几个图形的四个角的弧度: <gradient../>子元素

Winform改变Textbox边框颜色(转)

namespace MyTextBoxOne { //使用时必须把文本框的BorderStyle为FixedSingle才能使用 //一些控件(如TextBox.Button等)是由系统进程绘制,重载OnPaint方法将不起作用. //所有这里并没有使用重载OnPaint方法绘制TextBox边框. public class TextBoxTwo : TextBox { //获取的当前进程,以便重绘控件 [System.Runtime.InteropServices.DllImport("use

zxing生成二维码设置边框颜色

真是研究了很久很久,满满的泪啊 zxing生成二维码,默认是可以增加空白边框的,但是并没有说设置边框颜色的属性. 其中增加空白边框的属性的一句话是: Map hints = new HashMap();hints.put(EncodeHintType.MARGIN, 1); 使用这句话设置边框,留出来的边框的颜色,就是二维码中主颜色的以外的那个颜色.通常主颜色都是黑色,背景色都是白色.如下二维码的边框的颜色,就是除了绿色以外的那个颜色. 所以并没有设置边框颜色的属性,那该怎么办?比如:要求使用P

关于带有EditText的自定义AlertDialog,不能弹出软件盘的解决方法

原文 : 关于带有EditText的自定义AlertDialog,不能弹出软件盘的解决方法 mDialog = new AlertDialog.Builder(context, R.style.AlertDialog).create(); mDialog .show(); mDialog .getWindow().setContentView(layout); 原先的代码是这样的,但是运行后发现当弹出对话框的时候点击edittext无法弹出软键盘,但是这样写又能弹出软键盘: mDialog =

C# WinForm窗体控件Panel修改边框颜色以及边框宽度方法

C# WinForm窗体控件Panel修改边框颜色以及边框宽度方法 1.新建组件这里可以自定义一个Panel控件起名为PanelEx 2.增加一个BoderColor属性和BoderSize属性 1 private Color _BorderColor = Color.Black; 2 3 [Browsable(true), Description("边框颜色"), Category("自定义分组")] 4 public Color BorderColor 5 {