最近項(xiàng)目中需要一些實(shí)現(xiàn)一些需求,在cordova里面實(shí)現(xiàn)一個(gè)頁(yè)面帶水印的效果飞蛹,按理說(shuō)這種效果谤狡,其實(shí)在html中實(shí)現(xiàn)更好,可是項(xiàng)目就要讓我在andorid端實(shí)現(xiàn)這樣的效果卧檐,無(wú)奈硬著頭皮上了墓懂,看了cordovaActivity的源碼后,發(fā)現(xiàn)其實(shí)要重寫(xiě)兩個(gè)方法霉囚,就可以實(shí)現(xiàn)這種效果
我們需要重寫(xiě)cordovaActivity 的? ??
makeWebView()? createViews()這兩個(gè)方法捕仔。代碼如下
public class WaterActivity extends CordovaActivity{
SystemWebView web;
@Override
public void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
//獲取andorid的content 我們的根布局
ViewGroup rootView=(ViewGroup)findViewById(android.R.id.content);
//加載我們的水印布局
View view=LayoutInflater.from(this).inflate(R.layout.activity_demo, null);
//添加到我們的根布局
rootView.addView(view, 0);
//創(chuàng)建cordova的webview
web=new SystemWebView(this);
web.setBackgroundColor(Color.TRANSPARENT);
web.setLayoutParams(new ViewGroup.LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.MATCH_PARENT));
//添加到我們的根布局中
rootView.addView(web,0);
super.init();
loadUrl("file:///android_asset/www/index.html");
}
@Override
protected CordovaWebView makeWebView() {
// TODO Auto-generated method stub
return new CordovaWebViewImpl(new SystemWebViewEngine(web));
}
@Override
protected void createViews() {
// TODO Auto-generated method stub
if (preferences.contains("BackgroundColor")) {
? ? ? ? ? ? try {
? ? ? ? ? ? ? ? int backgroundColor = preferences.getInteger("BackgroundColor", Color.BLACK);
? ? ? ? ? ? ? ? // Background of activity:
? ? ? ? ? ? ? ? appView.getView().setBackgroundColor(backgroundColor);
? ? ? ? ? ? }
? ? ? ? ? ? catch (NumberFormatException e){
? ? ? ? ? ? ? ? e.printStackTrace();
? ? ? ? ? ? }
? ? ? ? }
? ? ? ? appView.getView().requestFocusFromTouch();
}
}