① 怎麼在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裡面有一個屬性setThumbResource(友喚),這個方法可以指定使用自定義的Drawable來繪制該開關襪告攔的開關按鈕,你試試可以不告胡。
③ 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);
}
}
④ android滑動開關按鈕實現方式有幾種
起初我在Android上我只會使用CheckBox去滿足對應的功能。後來,查看開發文檔發現,android也有了自己的原鍵游生態開關控制項,並且在4.0版本中又優化加入了新的類似控制項--Switch控制項,以及使用起來攔亮空十分簡單的ToggleButton,可是它們只是簡瞎帶有切換效果,而不帶有滑動切換效果,並且Switch控制項只支持高版本的系統,對於2.3就不支持。所以,要想看如何實現滑動切換的效果,必須了解這些控制項的實現方式。下面,讓我們查看下android開發文檔,看看這些是如何實現使用的。
⑤ 安卓手機怎麼設置下面的三個按鍵
安卓手機下面三個鍵調出方法如下(以華為nova8手機為例):
1、解鎖手機,在設置里點擊「系統和更新」選項。
2、在系統和更新界面點擊「系統導航方式」選項。
3、在系統導航方式界面點擊「屏幕內導航」右側的開關。
4、打開「屏幕三鍵導航」開關後即可看到手機屏幕下沖仔顫方的三個按鈕,三角形按鈕是返回鍵。
安卓(Android)是一種基於linux內核(不包含GNU組件)的自由及開放源代碼的操作系統,主要使用於移動散敗設備,如智能手機和平板電腦,由美國Google公司和開放手機聯盟領導及開發,Android操作系統最初由安迪魯賓開發,主要支持手機。
安卓系統的優勢
開放性:在優勢方面,Android平台首先就是其開放性,開發的平台允許任何移動終端廠商加入到Android聯盟中來,顯著的開放性可以使其擁有更多的開發者,隨著用戶和應用的日益豐富,一個嶄新的平台也將很快走向成熟。
豐富的硬體:這一點還是與Android平台的開放性相關,由於Android的開放性,眾多的廠商會推出千奇百怪,功能特色各具的多種產品。功能上的差異和特色,卻不會影響到數據同步、甚至軟體的兼容,如同從諾基亞Symbian風格手機一下改用蘋果iPhone,同時還可將Symbian中優秀的軟體帶到iPhone上使用、聯系人等資料更是可以方便地轉移。
以上內容參考:網路戚差—安卓系統
⑥ 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
⑦ 在開發高德地圖導航時使用amapnaviview為什麼導航界面是空白
之前使用網路地圖提供的Android導航API時,需要自定義開關導航的按鈕,於是在導航的View中找到需要隱藏的控制項,然後將控制項的visible屬性設置為GONE,這樣就OK了。現在在使用芹粗空高德導航時出現了同樣的問題。高德也沒有提供相關凳州的API。於是我嘗試使用解決網路地圖的方法,在導航的界面中找相應的控制項,不過最終失敗了,並沒有找到對應的控制項。。。
於是繼續在高德導航API中搜索。。。
最終在AMapNaviViewOptions類中找到了一個setLayoutVisible(boolean isLayoutVisible)方法,官方的說明是「設置導航界面UI是否顯示」。開始誤以為是設置導航地圖是否顯示,後面自己嘗試了一下,運行效果居然是把除地圖之外所有的操作都隱藏了。。。(效果圖就不上傳了,就只有一張地圖)
隱藏了所有的操作控制項,那我們就可以自己繪制各種控制項了。不過有個問題,現在連導航的信息也沒了。。。不過如果我們能獲取到導航信息,那就好辦了,幸運的是高德提供了一個方法。在AMapNaviListener介面中有一個方法onNaviInfoUpdate(NaviInfo naviinfo),官方的說明是「導航引導信息回調 naviinfo 是導航信息類」。所以我們可以實現AMapNaviListener介面,然後重寫這個方法,獲取到NaviInfo。NaviInfo是一個導航信息類,包含了導航相關的信息。
比如:
public String getCurrentRoadName()—獲取當前路線名稱
public String getNextRoadName()—獲取下條路名
public int getPathRetainDistance()—獲取路線剩餘距離
public int getPathRetainTime()—獲取路線剩餘時間
public void setIconType(int iconType)—設置導航轉向圖標
有了這些信息,我們嫌瞎完全就可以自定義導航界面了。呃。。。地圖除外。
感覺高德地圖提供的Android 導航API比網路的要人性化呢。。。
⑧ android中怎樣設定app自啟動
方法/步驟
首先點按手機介面的設定標志
如果沒有將設定圖示放置在手機介面 可以點按手機介面上方向下拖動 然後點按下圖中箭頭指向的設定按鈕
進入設定介面之後點按介面右上角的全部設定按鈕 然後向上拖動介面
找到許可權管理按鈕 點按該按鈕
在許可權中點按開機自動啟動
此時將出現手機中的所用應用app列表 如果點按某應用後面的灰色的開關 點按之後該開關將顯示為藍色的開啟狀態 那麼此時該應用將會在手機開機時自動啟動
點按介面下方的選單按鈕 將彈出快捷選單 可以點按全部允許從而讓所有的app都自動啟動 或者點按全部禁止 這樣設定可以讓全部app在手機開機後都不能自動啟動
方法有三:
1.去 開始-程式-啟動 中找 如果有 qq一項 刪除即可。
2.若沒有看到可以 開始-執行 中輸入 msconfig 回車
開啟 實用程式配置 找到啟動選項卡 找到記錄著 qq安裝路徑的一項 ,將該向前邊的對鉤去掉重起機器ok。
3.如果這里都沒有的話,自己的技術還可以的話,可以去登錄檔看看, 開始-執行 regedit 回車,展開到HKEY_CURRENT_ 和HKEY_LOCAL_
中找 該程式的鍵,一般是以改程式的路徑為鍵值的鍵,將其鍵值設定為0或者刪除就可以了
這樣大部分的自啟動的專案都可以看到解決了
希望樓主能解決問題
網路卡驅動有問題 若是更新過的最新版本 建議解除安裝掉 安裝官方釋出的版本
若是驅動精靈等軟體檢測有新版本 則更新至公版試試
將程式拉到開始-所有程式-啟動中間去即可。
這個是設定不了的,除非你的手機獲取root許可權才可以辦到,也就是獲取了root許可權就可以禁止手機軟體自啟動了。
設定電腦啟動程式的方法如下: 1開啟開始選單,在搜尋框輸入msconfig。 2按回車鍵,在彈窗框把需要開機啟動的程式打勾,點選確定就可以。
可嘗試以下操作:
1.點選最近應用程式鍵(手機左下方的觸控鍵)-點選左側圖示-進入工作管理員-活動應用程式-結束後台執行的程式。
2.開啟設定-應用程式管理器-左右滑動-查詢是否有「自動執行」選項-開啟某一軟體-將自動執行對勾取消即可。
3.可以安裝第三方安全管理器軟體限制後台執行。
去手機管家-許可權隱私-自啟動管理
就有了哦
1、按WIN+R 調出執行,然後輸入 gpedit.msc 確定;
2、然後在策略組中展開【計算機管理】-【管理模板】-【windows元件】-【windows Defender】;
3、然後找到關閉 windows Defender ,雙擊後設置為啟用;
在.bash_profile中設定就可以了
⑨ 手機虛擬按鍵怎麼設置
1. 手機虛擬按鍵
手機虛擬按鍵 安卓手機如何調出虛擬按鍵
准備
一,手機root
二,手機安裝RE文件管理
過程
一改吵,用RE找到system/build.prop
二,長按build.prop,選擇用文本編輯器打開
三,再文本的最下面另起一行輸入:
qemu.hw.mainkeys=0
這個指令即可!
其中0代表開啟,1代表關閉,可以更改!
弄好後選擇保存退出,然後退出RE,重啟手機,
然後你的手機就會出現三個虛擬按鍵了,從左到右分別是返回鍵,主頁鍵,最近使用程序,特定情況下會出現菜單鍵!
虛擬按鍵的版欄有點大
來源:tieba./p/2265346234
手機上的虛擬按鍵是什麼意思?
虛擬按鍵就是在屏幕中設置一個圖標,代替物理按鍵的功能,用來保護物理按鍵,延長物理按鍵的壽命。
拓展回答:
1. 虛擬就是沒有實物、沒有按鍵的、你那手機應該是觸屏的、啟用虛擬方向鍵就是在屏幕上有上、下、左、右、確認。功能跟按鍵一樣。
2. 虛擬按鍵可以減少你適應home鍵與電源鍵的次數,真長按鍵使用時間。
3. 手機虛擬鍵盤是指用於全觸摸手機的虛擬於屏幕的按鍵虛擬鍵盤。可直接把觸摸屏上的虛擬鍵盤當實質鍵盤使用。
4. 關於屏內虛擬按鍵設計的好壞,一直都存在很大的爭議。圍繞著屏內虛擬按鍵,支持者與反對者之間進行了長期的爭論,至今仍未分出勝負。然而,當多功能前置指紋按鍵開始普及的時候,屏內虛擬按鍵似乎正在逐步走向邊緣化。
安卓如何開觸屏虛擬鍵
前言: 現在很多安卓手機都取消了實體鍵或者觸摸鍵,那麼,代替這些按鍵的就是手機的虛擬按鍵了,比如GN、N4等手機都有虛擬按鍵,你是不是覺得這些虛擬按鍵很有趣呢?其實,谷歌在發布安卓4.0的時候,就肢彎為系統自身開發了這個功能,但是為什麼有的手機上沒有這個虛擬按鍵呢?那是因為很多手機廠商的系統是基於安卓原生再度開發的,他們因為手機的設計,而隱藏了這個功能。
也就是說,只要你的手機是安卓4.0以上的版本,都具有這個功能的,那麼,今天我教大家如何實現這個隱藏的功能。 實現前提: 1、手機必須是安卓手機,並且安卓版本在4.0以上; 2、手機必須ROOT,具體ROOT方法請大家 在網上尋找,這里不做說明; 3、手機必須安裝RE文件管理器。
步驟一: 1、打開安裝好的RE文件管理器,進入system文件夾,點擊一下圖片中顯示的」1「的位置,使狀態變為」Mount R/O「可讀寫。 2、找到build.prop這個文件,長按這個文件,會彈出一個窗口,再選擇」open in text editor「。
步驟二: 打開文件之後,你可以看到很多代碼,翻到最後一行,然後增加一行代碼:qemu.hw.mainkeys=0,然後保存推出,核飢侍再重啟手機,你就可以看到手機屏幕下方的虛擬按鍵效果了。
華為手機 虛擬按鍵 怎麼調出來
1、以華為P10為例,打開手機「設置」應用;
2、接下來在設置界面下拉選擇「系統」選項;
3、接下來在系統界面選擇「系統導航方式」選項;
4、接下來在系統導航方式界面可以看到默認勾選「屏外物理導航鍵」選項;
5、接下來勾選「屏內三鍵導航」選項;
6、接下來可以看到虛擬按鍵就調出來了;
安卓手機虛擬鍵盤怎麼關閉
1、以華為p20手機為例,首先在手機桌面中找到設置圖標,點擊進入。
2、然後在設置頁面中找到導航鍵一項,點擊進入。
3、然後在裡面可以看到有導航鍵可隱藏的頁面了。
4、找到選項右側的按鈕開關,點擊打開。
5、打開之後就可以看到虛擬鍵盤中左側有一個小箭頭的圖標,點擊一下。
6、這時就可以看到手機底部的虛擬鍵盤已經隱藏了。
怎麼手動開關Android虛擬鍵?
三星Galaxy系列相對於其他Android最有辨識度的特點就是它們幾乎都有著一顆實體的home鍵,但是實體鍵按得多很可能會遇到失靈的問題,當然我們可以通過一些虛擬鍵軟體解決這個問題。而最近在網上出現了一種比較另類的方法,可以讓Galaxy系列手機也加入虛擬鍵,同時利用相同的方法,也可以刪除部分手機的虛擬鍵。
首先是要獲取手機的root許可權,然後打開「RE管理器」到系統根目錄的System目錄下,找到build.prop:
這個文件里包含了很多設備的信息,我們在設置里看到的很多版本號都是來自這里:
使用文本編輯的方式打開這個文件,在最後一行加入「qemu.hw.mainkeys=0」:
重啟以後,就會發現屏幕下方出現熟悉的虛擬鍵,另外這造型似乎和Sony的虛擬鍵很類似…:
小米2也有可以通過相同的方法調出虛擬鍵,如圖所示:
在設置的「按鍵」裡面甚至還有虛擬鍵專用的調節菜單,可對四個虛擬鍵進行位置的調換,這不禁讓人懷疑小米2的原型會不會就是帶有虛擬鍵的:
當然了,這種方法對於小屏幕手機來說會造成很大的影響,佔用了一定的屏幕空間 這個方法實際上對於一般用戶來說可能用戶都不大,不過利用同樣的思路可以改變部分手機的虛擬鍵,例如較早期的One X(One S)就可以通過類似的方法去掉那「反人類」的菜單虛擬鍵:
方法也是類似,不過這次加入的是「qemu.hw.mainkeys=1」,重啟以後那條煩人的黑邊也就消失了,當然這已經是老方法了,在新的 HTC Sense裡面,虛擬鍵已經可通過設置去除。如果有其他有虛擬鍵的手機,也可以嘗試用相同的方法去除虛擬鍵,不過去掉以後我們就要想辦法安裝第三方的虛擬鍵應用以實現原來虛擬鍵的一些功能。
⑩ android開關按鈕怎麼實現
可以直接用button和兩張圖片(開和關),用圖片做背景,在點擊事件中切換圖片就行了