android自定義edittext樣式
『壹』 android 怎麼改變Edittext樣式
你可以重寫 Edittext 不過這個比較麻煩,簡單的實現。製作兩種背景圖片(普通和獲得焦點兩種樣式),寫一個drawbale的xml 。然後設為EditText的背景就ok了
『貳』 android studio做一個網站輸入框
Android Studio 是做App用的,無法做網站輸入框,可以做一個類似的在android上,使用控制項EditText即可,樣式可自定義。
『叄』 安卓EditText能不能實現有文字時和無文字時的背景顏色不同
可以實現,自定義一個edittext,對其輸入和焦點監聽改變背景色就可以了。
/**
* Created by beckett on 2018/4/23.
*/
public class BackgroundEditText extends AppCompatEditText implements View.OnFocusChangeListener, TextWatcher {
private boolean hasFoucs;
public BackgroundEditText(Context context) {
this(context, null);
}
public BackgroundEditText(Context context, AttributeSet attrs) {
this(context, attrs, android.R.attr.editTextStyle);
}
public BackgroundEditText(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
init();
}
private void init() {
// 默認設置隱藏背景
setBackgroundColorVisible(false);
// 設置焦點改變的監聽
setOnFocusChangeListener(this);
// 設置輸入框裡面內容發生改變的監聽
addTextChangedListener(this);
}
/**
* 當BackgroundEditText焦點發生變化的時候,
* 輸入長度為零,隱藏背景,否則,顯示背景
*/
@Override
public void onFocusChange(View v, boolean hasFocus) {
this.hasFoucs = hasFocus;
if (hasFocus) {
setBackgroundColorVisible(getText().length() > 0);
} else {
setBackgroundColorVisible(false);
}
}
protected void setBackgroundColorVisible(boolean visible) {
if(visible){
setBackgroundResource(R.color.colorPrimary); //有文本長度時
}else{
setBackgroundResource(R.color.Transparent); //沒有透明
}
}@Override
public void onTextChanged(CharSequence s, int start, int count, int after) {
if (hasFoucs) {
setBackgroundColorVisible(s.length() > 0);
}
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void afterTextChanged(Editable s) {
}
}
『肆』 android 自定義的dialog,edit text 不能獲得焦點,彈出軟鍵盤。
1、首先自定義布局
2、把自定義布局放入dialog中顯示
3、通過自定義布局查找對應的edittext組件
final View DialogView = a .inflate ( R.layout.loand, null);//1、自定義布局
//創建對話框
AlertDialog dlg = new AlertDialog.Builder(loand.this)
.setTitle("登錄框")
.setView(DialogView)//設置自定義對話框的樣式,2、自定義布局放入dialog中顯示
.setPositiveButton("登陸", //設置"確定"按鈕
new DialogInterface.OnClickListener() //設置事件監聽{
public void onClick(DialogInterface dialog, int whichButton){editText1 =(EditText) DialogView.findViewById(R.id.editText1);
editText2 =(EditText) DialogView.findViewById(R.id.editText2);//3、過自定義布局查找對應的edittext組件
String id = editText1.getText().toString();
String password = editText2.getText().toString();
『伍』 android 後面代碼怎麼設置edittext的值
1、EditText輸入的文字為密碼形式的設置
(1)通過.xml里設置:
把該EditText設為:android:password="true" // 以」.」形式顯示文本
(2)在代碼里設置:
通過設置EditText的setTransformationMethod()方法來實現隱藏密碼或這顯示密碼。
editText.setTransformationMethod(PasswordTransformationMethod.getInstance());//設置密碼為不可見。
2、(1)EditText輸入的文字為電話號碼
Android:phoneNumber=」true」 //輸入電話號碼
3、EditText字數限制的設置
(1)在.xml中設置:android:maxLength=「50」
(2)代碼中設置:
editText.setFilters(new InputFilter[]{newInputFilter.LengthFilter(100)});
4、EditText設置字體
android:typeface="monospace" //設置字型。字形有:normal, sans, serif,monospace
5、EditText是否可編輯
Android:editable // 是否可編輯
6、在EditText中軟鍵盤的調起、關閉
(1)EditText有焦點(focusable為true)阻止輸入法彈出
editText=(EditText)findViewById(R.id.txtBody);
editText.setOnTouchListener(new OnTouchListener(){
public boolean onTouch(View v, MotionEvent event){
editText.setInputType(InputType.TYPE_NULL); //關閉軟鍵盤
return false;
}
});
(2)當EidtText無焦點(focusable=false)時阻止輸入法彈出
InputMethodManager imm =
(InputMethodManager)getSystemService(INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(editText.getWindowToken(),0);
(3)調用數字鍵盤並設置輸入類型和鍵盤為英文
etNumber.setInputType(InputType.TYPE_CLASS_NUMBER); //調用數字鍵盤
rlEditText.setInputType(InputType.TYPE_TEXT_FLAG_MULTI_LINE);//設置輸入類型和鍵盤為英文 或者:android:inputType="textUri|textMultiLine"
(4)android:focusable="false"//鍵盤永遠不會彈出
<activity android:name=".AddLinkman"android:windowSoftInputMode="adjustUnspecified|stateHidden"/>//不自動彈出鍵盤
//關閉鍵盤(比如輸入結束後執行) InputMethodManager imm =(InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(etEditText.getWindowToken(), 0);
//自動彈出鍵盤
((InputMethodManager)getSystemService(INPUT_METHOD_SERVICE)).toggleSoftInput(0,InputMethodManager.HIDE_NOT_ALWAYS);
etEditText.requestFocus();//讓EditText獲得焦點,但是獲得焦點並不會自動彈出鍵盤
7、android:layout_gravity和android:gravity的區別
(1)android:layout_gravity是本元素對父元素的重力方向。
(2)android:gravity是本元素所有子元素的重力方向。
8、android:padding和android:layout_margin區別
這兩個都可以設置邊距,但有細微的區別:
(1)android:padding是相對父view的邊距
(2)android:layout_margin是相對同一級View的邊距
例:LinearLayout是水平布局,下面有兩個按鈕,
(a)如果右邊的按鈕想距左邊的按鈕15px,因為這兩個按鈕是同一級的,應該用android:layout_margin;
(b)如果右邊的按鈕想距左邊的距離為350px,應該用android:padding
9、android:numeric//只接受數字
android:numeric來控制輸入的數字類型,一共有三種分別為integer(正整數)、signed(帶符號整數,有正負)和decimal(浮點數)。
『陸』 android怎麼改變Edittext樣式我想在不改變
方法如下:
1.去掉邊框
EditText的background屬性設置為@null就搞定了:android:background="@null"
style屬性倒是可加可不加。
2.改變邊框顏色
代碼如下:
[html] view plain
<EditText
android:layout_width="fill_parent"
android:layout_height="36dip"
android:background="@drawable/bg_edittext"
android:padding="5dip"
android:layout_margin="36dip"
android:textColorHint="#AAAAAA"
android:textSize="15dip"
android:singleLine="true"
android:hint="請輸入..."
/>
『柒』 android布局如何實現顯示填滿整個手機屏幕,EditText如何設置能使其樣式不隨輸入內容太多而發生變化。
填滿整個手機屏幕:
在布局文件layout中屏幕父元素內定義如下:
android:layout_width="match_parent"
android:layout_height="match_parent"
EditText設置樣式使之不隨內容多少而發生變化:
在EditText控制項內添加如下定義:
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_weight="8"(自定義,使之固定)
android:singleline="true"
『捌』 android開發,EditText的邊框的顏色怎麼設置
EditText的自帶屬性里沒有設置邊框顏色的
有倆種方式可以達到效果
一種是網上比較推崇的用圖作背景,另一種則是自繪
圖作背景的:
首先重新定義一個style。在values文件夾下新建一個style.
xml文件
:
@drawable/my_edittext
接下來在drawable里添...
『玖』 android怎麼改變Edittext樣式我想在不改變
mCheckBoxView = (CheckBox) findViewById(R.id.settings_synch_delet); mEditTextView = (EditText) findViewById(R.id.account_password); mCheckBoxView.setOnCheckedChangeListener(checkBox_Listener); private CheckBox.OnCheckedChangeListener checkBox_Listener = new CheckBox.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView,boolean isChecked) { if(mCheckBoxView.isChecked()){ //文本正常顯示 mEditTextView.setInputType(InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD); Editable etable = mEditTextView.getText(); Selection.setSelection(etable, etable.length()); }else{ //文本以密碼形式顯示 mEditTextView.setInputType(InputType.TYPE_CLASS_TEXT InputType.TYPE_TEXT_VARIATION_PASSWORD); //下面兩行代碼實現: 輸入框游標一直在輸入文本後面 Editable etable = mEditTextView.getText(); Selection.setSelection(etable, etable.length()); } } }; 希望能幫到你 幫到你了 請採納 謝謝