android讓控制項隱藏顯示
⑴ Android 怎麼隱藏控制項,又不回收控制項的空間
在Android開發中,大部分控制項都有visibility這個屬性,其屬性有3個分別為「visible 」、「invisible」、「gone」。主要用來設置控制控制項的顯示和隱藏。有些人可能會疑惑Invisible和gone是有什麼區別的???
其在XML文件和java代碼中設置如下:
可見(visible)
XML文件:android:visibility="visible"
Java代碼:view.setVisibility(View.VISIBLE);
不可見(invisible)
XML文件:android:visibility="invisible"
Java代碼:view.setVisibility(View.INVISIBLE);
隱藏(GONE)
XML文件:android:visibility="gone"
Java代碼:view.setVisibility(View.GONE);
VISIBLE:設置控制項可見
INVISIBLE:設置控制項不可見
GONE:設置控制項隱藏
而INVISIBLE和GONE的主要區別是:當控制項visibility屬性為INVISIBLE時,界面保留了view控制項所佔有的空間;而控制項屬性為GONE時,界面則不保留view控制項所佔有的空間。
http://blog.csdn.net/chindroid/article/details/8000713
⑵ 如何隱藏Android WebView 縮放控制項
每個版本隱藏縮放控制項的方法如下:
在Android3.0之後實現非常簡單,加一句代碼就可以了,如下代碼:
//不顯示webview縮放按鈕
settings.setDisplayZoomControls(false);12
其實到這里本文就應該到此為止了,但有的同學問,你這個只兼容到3.0以上版本,我要是兼容到2.x版本呢?我想說的是,其實沒有必須再兼容到2.x版本了,2.x的用戶量很少了,4.x以上的用戶已經佔到94%以上了,下面看AndroidStudio統計的各個平台版本的用戶使用比率:
所以說,我們沒有必要兼容2.x了,就像IOS開發只兼容到IOS7版本就OK了,但是有的同學又說,我有強迫症,我就想兼容到2.x版本,其實解決方案網上都有了,這里用到了java反射的知識,通過反射來獲取私有的屬性控制項mZoomButtonsController,然後就其setVisibility(View.GONE)隱藏就可以了,下面貼出代碼實現:
public void setZoomControlGone(View view){
Class classType;
Field field;
try {
classType = WebView.class;
field = classType.getDeclaredField("mZoomButtonsController");
field.setAccessible(true);
ZoomButtonsController mZoomButtonsController = new ZoomButtonsController(view);
mZoomButtonsController.getZoomControls().setVisibility(View.GONE);
try {
field.set(view, mZoomButtonsController);
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
} catch (SecurityException e) {
e.printStackTrace();
} catch (NoSuchFieldException e) {
e.printStackTrace();
}
}
⑶ 求助Android系統中SystemUI.apk中控制項的顯示和隱藏問題
網上找了好多狀態欄隱藏的方法,搜集總結一下,供以後參考。
系統中狀態欄的隱藏
定製系統的時候,想去掉系統中的狀態欄,系統中的狀態欄隱藏的可在framework中的SystemUI.apk中修改實現。
SystemUI.apk代碼位於
RK2908/ics/frameworks/base/packages/SystemUI
設置狀態欄不顯示:
打開文件SystemUI/src/com/android/systemui/statusbar/tablet/TabletStatusBar.java
找到如下代碼
460 final TabletStatusBarView sb = (TabletStatusBarView)View.inflate(
461 context, R.layout.status_bar, null);
462 mStatusBarView = sb;
在代碼之後加入如下一行
mStatusBarView.setVisibility(View.INVISIBLE);
重新編譯得到SystemUI.apk
xiaxg@system:~/RK2908/ics/build$ source envsetup.sh
xiaxg@system:~/RK2908/ics/frameworks/base/packages/SystemUI$ mm
得到的SystemUI.apk 位於out/target/proct/rk29sdk/system/app/SystemUI.apk
將SystemUI.apk放在目標板 /system/app下;
如不重啟系統的話,需殺掉com.android.systemui進程才會運行新的SystemUI.apk
Apk中狀態欄的隱藏,全屏的實現
在開發中我們經常需要把我們的應用設置為全屏,這里介紹兩種方法,一中是在代碼中設置,另一種方法是在配置文件里改。
1. 在代碼中設置:
package com.android.tutor;
import android.app.Activity;
import android.os.Bundle;
import android.view.Window;
import android.view.WindowManager;
public class OpenGl_Lesson1 extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//去除title
requestWindowFeature(Window.FEATURE_NO_TITLE);
//去掉Activity上面的狀態欄
getWindow().setFlags(WindowManager.LayoutParams. FLAG_FULLSCREEN ,
WindowManager.LayoutParams. FLAG_FULLSCREEN);
setContentView(R.layout.main);
}
}
設置全屏的倆段代碼必須在setContentView(R.layout.main) 之前,不然會報錯。
2. 在配置文件里修改
關鍵此行:android:theme="@android:style/Theme.NoTitleBar.Fullscreen",如果想只是去除標題欄就後面不用加Fullscreen了,另外,如果想要整個應用都去除標題欄和狀態欄,就把這句代碼加到<application。。標簽裡面,如果只是想某個activity起作用,這句代碼就加到相應的activity上。
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.android.tutor"
android:versionCode="1"
android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".OpenGl_Lesson1"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
<uses-sdk android:minSdkVersion="7" />
</manifest>
說明,用前者在我們應用運行後,會看到短暫的狀態欄,然後才全屏,而第二種方法是不會有這種情況的,所以建議使用後者!
⑷ 在android中怎麼把控制項隱藏
可見(visible)x0dx0aXML文件:android:visibility="visible"x0dx0aJava代碼:view.setVisibility(View.VISIBLE);x0dx0a x0dx0a不可見(invisible)x0dx0aXML文件:android:visibility="invisible"x0dx0aJava代碼:view.setVisibility(View.INVISIBLE);x0dx0a x0dx0a隱藏(GONE)x0dx0aXML文件:android:visibility="gone"x0dx0aJava代碼:view.setVisibility(View.GONE);
⑸ android中switch控制項怎麼控制圖片的顯示隱藏
Android中自帶的Switch控制項在很多時候總覺得和整體系統風格不符,很多時候,自定義Switch是一種方法。
但其實不用這么麻煩,安卓自帶的Switch通過修改一些屬性,也可以達到和自定義Switch差不多的一個效果。
個人感覺,Switch的屬性設置和其他控制項還是有挺大區別的。
實現方式:
底部滑動條,在開關打開狀態為綠色,開關關閉狀態為灰色
在 res/drawable 文件夾下面,寫兩個滑動條的底圖 ,通過一個選擇器selector進行控制。
⑹ android中怎麼讓一個圖片或者說一個控制項在頁面上顯示十秒之後隱藏掉..
思路:定時+隱藏按鈕
定時的方案有三種:
1、Handler+Thread
2、Handler類自帶的postDelyed
3、Handler+Timer+TimerTask
這里推薦使用第二種方式比較實用簡單
handler.postDelayed(runnable,10000);//10秒後執行runnable的run方法
Handlerhandler=newHandler();
Runnablerunnable=newRunnable(){
@Override
publicvoidrun(){//10秒後執行該方法
//handler自帶方法實現定時器
try{
Viewview=(View)findViewById(R.id.xxx);//圖片或者控制項
view.setVisible(View.Gone);//隱藏
System.out.println("do...");
}catch(Exceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
System.out.println("exception...");
}
}
};
⑺ android listview 綁定數據之後如何隱藏控制項
1、在你的數據源中設置一個boolean標志位,用來控制顯示與隱藏的。
2、在listview所綁定的adapter中的getView方法中取出你的標志位,根據這個標志未決定你的控制項是顯示還是隱藏。
以上,希望對你有幫助。
⑻ Android的java語句怎樣實現xml控制項的隱藏和顯示
Java中可以通過mlistview1.setVisibility()方法來做到控制項的隱藏和顯示。
mlistview1.setVisibility(View.GONE);//mlistview1處於隱藏狀態
//mlistview1.setVisibility(View.INVISIBLE);//mlistview1處於隱藏狀態
mlistview2.setVisibility(View.VISIBLE);//mlistview2處於顯示狀態
⑼ android listview怎麼顯示或者隱藏某一控制項
譬如你設個textview tx; tx.setVisibility(View.GONE);這個就是設置控制項隱藏
tx.setVisibility(View.VISIBLE);這個是設置控制項顯示
⑽ 安卓中如何讓一個控制項顯示幾秒自動隱藏
安卓中讓一個控制項顯示幾秒後自動隱藏可以通過以下方法實現:
1、加一個Timer,設置2000表示2秒後執行Tick事件
2、因為你只需要執行一次,所以在一次Tick之後,注銷Tick事件,停止Timer
代碼如下:
Label lbl = new Label();
Timer timer = new Timer();
timer.Interval = 2000;
timer.Tick += (timer_Tick);
timer.Enabled = true;
void timer_Tick(object sender, EventArgs e)
{
lbl.Visible = false;
timer.Tick -= (timer_Tick);
timer.Stop();
}