當前位置:首頁 » 安卓系統 » android開關按鈕

android開關按鈕

發布時間: 2022-02-25 14:37:54

『壹』 android中怎樣獲取togglebutton的開關值

可以用:toggleButton.isChecked();來拿到ToggleButton的開關值。

『貳』 android 按鈕控制其他Activity中的控制項顯示

將about中的開關狀態保存起來,main界面每次顯示時讀取這個狀態來控制textview的顯示和隱藏

『叄』 android滑動開關按鈕實現方式有幾種

關於Android中View控制項的分類可以分為以下幾類:
1. 文本類:
TextView、EditText、AutoCompleteTextView、MultAutoCompletTextView 、(TextSwitcher) 、(DigitalClock)
ExtractEditText、CheckedTextView、Chronometer

2.按鈕類:
Button、CheckBox、RadioButton(RadioGroup) 、ToggleButton 、(ImageButton ) CompoundButton

2. 縮放按鈕:
ZoomButton、ZoomControls

3. 圖片類:
ImageView、ZoomButton、ImageButton、(ImageSwitcher ) QuickContactBadge

4. 時間控制項:
DigitalClock、AnalogClock、TimePicker、DatePicker

5.進度顯示:
ProgressBar、AbsSeekBar、SeekBar、RatingBar(星星評分)

6.導航: TabHost、TabWidget。

7.視頻媒體:
VideView、MediaController

8.Dialog對話框
CharacherPickerDialog、AlertDialog、DatePickerDialog、ProgressDialog、TimePickerDialog

9. 布局類控制項:
AbsoluteLayout、LinearLayout、RadioGroup 、TableLayout、 TableRow、RelativeLayout、FrameLayout

10.需要適配器的布局類:
AdapterView、AbsListView、GridView、ListView、AbsSpinner、Gallery Spinner

11.滾動條: HorizontalScrollView、ScrollView

12.網頁: WebView

13.動畫: ViewAimator、ViewFilpper、ViewSwitcher、ImageSwitcher、TextSwitcher

『肆』 android自定的開關按鈕不用點擊怎麼改變開關狀態

在Android中,不管什麼樣子的視圖都是繼承自View類,因此我們必須要自定義一個View類,下面看一下代碼實現

『伍』 安卓手機如何把開機鍵改成其他的按鍵

修改系統文件的代碼,可以讓其他按鍵代替電源鍵的鎖屏功能。

可代碼畢竟是軟體,只有在系統運行時才起作用,想完全代替電源鍵是不可能的。電源鍵的開、關機功能除了是系統文件決定,最基本的還是硬體電路決定的,所以不建議把開機鍵改成其它的按鍵。

『陸』 android開關按鈕怎麼實現

可以直接用button和兩張圖片(開和關),用圖片做背景,在點擊事件中切換圖片就行了

『柒』 安卓怎麼把兩個按鈕寫成一個,點一下開,再點一下關

  • 定義一個全局變數,比如定義一個boolean類型的,首先初始值設置成false,,點擊開關,首先判斷該boolean是true還是false,如果是false,就打開燈,並且將該boolean賦值為true,在點擊開關時,會再判斷該boolean是true還是false,這時候boolean是true,就執行關燈,然後在把boolean設為false,代碼如下:

  • java">Booleanboolean=false;
    findViewById(R.id.open_btn).setOnClickListener(newOnClickListener(){
    @Override
    publicvoidonClick(Viewarg0){
    if(boolean==false){
    if("樓道燈".equals(mControlName)){
    sendCMD(streetOpenCommand);
    }elseif("路燈".equals(mControlName)){
    sendCMD(corridorOpenCommand);
    }
    boolean=true;
    }elseif(boolean==true){
    if("樓道燈".equals(mControlName)){
    sendCMD(streetCloseCommand);
    }elseif("路燈".equals(mControlName)){
    sendCMD(corridorCloseCommand
    );
    }
    boolean=false;
    }
    }
    });

『捌』 在Android中作一個界面按鈕,類似於WIFI的開關

Switch控制項

『玖』 怎麼在android studio中實現開關按鈕

先在布局文件中添加一個Button,然後再在java代碼中獲取這個按鈕,設置它的監聽事件就可以了。
.xml:
<Button android:"@+id/button1"......>
.java:
Button btn = (Button) findViewById(R.id.button1);
btn .setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
//你要執行的代碼
}
});
這是一種方法

『拾』 android中的switch開關和ios中的不同,這樣就需要通過動畫來實現一個iphone開關了

做IOS開發的都知道,IOS提供了一個具有動態開關效果的UISwitch組件,這個組件很好用效果相對來說也很絢麗,當我們去點擊開關的時候有動畫效果,但遺憾的是Android上並沒有給我們提供類似的組件(聽說在Android4.0的版本上提供了具有動態效果的開關組件,不過我還沒有去看文檔),如果我們想實現類似的效果那該怎麼辦了呢?看來又得去自定義了。
公司的產品最近一直在做升級,主要做的就是把界面做的更絢麗更美觀給用戶更好的體驗(唉,顧客是上帝......),其中的設置功能中就有開關按鈕,原來的開關做的是兩幅圖片,通過點擊圖片來給開關設置不同的狀態圖片,但是這種效果很死板和程序的整體風格不太協調,於是就想著實現類似於IOS中的開關效果。
拿著筆在圖紙上畫了畫,我實現的原理也是採用了兩幅圖片,一個整體的背景圖:和一個小滑塊圖:,用小滑塊圖實現在背景圖上滑動,當小滑塊滑到左邊時恰好遮擋了開字,就是顯示的關了,同樣原理當小滑塊滑動到右側時恰好遮擋了關字也就是現實開了,滑動的實現主要用的就是TranslateAnimation類,如有對TranslateAnimation不太熟悉的,問問度娘,她那有關TranslateAnimation的解說多了去了,畢竟自己動手,豐衣食足嘛,(*^__^*) 嘻嘻……
好了,老規矩來看一下項目結構吧:

工程中switch_button.xml文件就是對應的SwitchButton的布局文件,內容不需要解釋,你一看就懂

?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/switch_parent"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/switch_bg">

<ImageView
android:id="@+id/switch_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/switch_btn" />

</LinearLayout>

SwitchButton的布局文件中根節點是個LinearLayout,把它的背景設置成了一個含有開關文字的圖片,里邊包含一個ImageView,這個ImageView就是用來在LinearLayout中進行滑動的。
其中自定義開關組件就是都在wedgit包下的SwitchButton,那麼趕緊來看一下SwitchButton的代碼吧

?

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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149

public class SwitchButton extends LinearLayout {

/**
* 開關圖片
*/
private LinearLayout switchParent;
/**
* 滑塊圖片
*/
private ImageView switchButton;
/**
* 按鈕狀態,默認關閉
*/
private boolean isOn = false;
/**
* 滑塊需要滑動的距離
*/
private int scrollDistance;
/**
* 開關按鈕監聽器
*/
private SwitchChangedListner listner;

public SwitchButton(Context context) {
super(context);
initWedgits(context);
}

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

/**
* 初始化組件
*
* @param context
* 上下文環境
*/
private void initWedgits(Context context) {
try {
View view = LayoutInflater.from(context).inflate(
R.layout.switch_button, this);
switchParent = (LinearLayout) view.findViewById(R.id.switch_parent);
switchButton = (ImageView) view.findViewById(R.id.switch_button);
addListeners();
} catch (Exception e) {
e.printStackTrace();
}
}

/**
* 添加事件監聽器
*/
private void addListeners() {
try {
switchParent.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
isOn = !isOn;
scrollSwitch();
if (null != listner) {
// 開關開發或者關閉的回調方法
listner.switchChanged(getId(), isOn);
}
}
});
} catch (Exception e) {
e.printStackTrace();
}
}

/**
* 滑動開關
*/
private void scrollSwitch() {
// 獲取滑塊需要滑動的距離,滑動距離等於父組建的寬度減去滑塊的寬度
scrollDistance = switchParent.getWidth() - switchButton.getWidth();
// 初始化滑動事件
Animation animation = null;
if (isOn) {
animation = new TranslateAnimation(0, scrollDistance, 0, 0);
} else {
animation = new TranslateAnimation(scrollDistance, 0, 0, 0);
}
// 設置滑動時間
animation.setDuration(200);
// 滑動之後保持狀態
animation.setFillAfter(true);
// 開始滑動
switchButton.startAnimation(animation);
}

/**
* 獲取開關狀態
*
* @return 【true:打開】【false:關閉】
*/
public boolean isOn() {
return isOn;
}

/**
* 設置開關狀態
*
* @param isOn
* 開關狀態【true:打開】【false:關閉】
*/
public void setOn(boolean isOn) {
if (this.isOn == isOn) {
return;
}
this.isOn = isOn;
post(new Runnable() {
@Override
public void run() {
scrollSwitch();
}
});
}

/**
* 設置開關狀態監聽器
*
* @param listner
* 開關狀態監聽器
*/
public void setOnSwitchListner(SwitchChangedListner listner) {
this.listner = listner;
}

/**
* 開關狀態監聽器
*
* @author llew
*
*/
public interface SwitchChangedListner {
/**
* 開關狀態改變
*
* @param viewId
* 當前開關ID
* @param isOn
* 開關是否打開【true:打開】【false:關閉】
*/
public void switchChanged(Integer viewId, boolean isOn);
}
}

熱點內容
美團商家新增的技術伺服器是什麼 發布:2024-04-27 12:12:35 瀏覽:343
得到腳本 發布:2024-04-27 12:06:25 瀏覽:936
三星手機鎖屏忘記密碼了怎麼辦 發布:2024-04-27 12:05:41 瀏覽:519
python基礎語言 發布:2024-04-27 11:54:40 瀏覽:84
ioshttp伺服器搭建 發布:2024-04-27 11:40:26 瀏覽:913
忘記密碼如何強制刷機vivo 發布:2024-04-27 11:28:40 瀏覽:385
c語言讀取指定行 發布:2024-04-27 11:28:30 瀏覽:52
c語言中a10什麼意思 發布:2024-04-27 10:45:43 瀏覽:58
物聯網中ftp是什麼意思 發布:2024-04-27 10:41:17 瀏覽:986
銀行密碼保護在哪裡 發布:2024-04-27 10:25:23 瀏覽:189