DRBD 也可當 iSCSI 將文章備份請來
改天來介紹給客戶實作。
http://blogs.mindspew-age.com/2012/04/05/adventures-in-high-availability-ha-iscsi-with-drbd-iscsi-and-pacemaker/
PDF 放於 :

echochio 發表在 痞客邦 留言(0) 人氣()


Testhtml5webview.java :
package o.html5webview;

import android.app.Activity;
import android.content.res.Configuration;
import android.os.Bundle;
import android.view.KeyEvent;

public class TestHTML5WebView extends Activity {

HTML5WebView mWebView;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mWebView = new HTML5WebView(this);

if (savedInstanceState != null) {
mWebView.restoreState(savedInstanceState);
} else {
//mWebView.loadUrl("http://freebsd.csie.nctu.edu.tw/~freedom/html5/");
mWebView.loadUrl("file:///android_asset/video.html");
}

setContentView(mWebView.getLayout());
}

@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
mWebView.saveState(outState);
}

@Override
public void onStop() {
super.onStop();
mWebView.stopLoading();
}

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
if (mWebView.inCustomView()) {
mWebView.hideCustomView();
return true;
}
}
return super.onKeyDown(keyCode, event);
}

@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
}
}
-------------------------------------------------------------------------------

echochio 發表在 痞客邦 留言(0) 人氣()

Android
將WebView 變更為顯示右上角 1/4 圖片
 
package com.example.hellowebviewactivity;

import android.os.Bundle;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.util.DisplayMetrics;
import android.view.Gravity;
import android.view.Window;
import android.view.WindowManager;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.FrameLayout;

@SuppressLint("SetJavaScriptEnabled")
public class MainActivity extends Activity {
WebView mWebView ;
FrameLayout FrameLayout1;
FrameLayout FrameLayout2;
DisplayMetrics metrics;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//// get windows metrics;
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);

////// use windows metrics set frame layout
FrameLayout1 = new FrameLayout(this);
FrameLayout2 = new FrameLayout(this);
FrameLayout.LayoutParams lparam1 = new FrameLayout.LayoutParams(metrics.widthPixels,metrics.heightPixels);
FrameLayout1.setLayoutParams(lparam1);
FrameLayout.LayoutParams lparam2 = new FrameLayout.LayoutParams(metrics.widthPixels/2,metrics.heightPixels/2);
lparam2.gravity = Gravity.LEFT|Gravity.TOP;
lparam2.leftMargin = 0;//X
lparam2.topMargin = 0;//Y
FrameLayout2.setLayoutParams(lparam2);
this.setContentView(FrameLayout1);
FrameLayout1.addView(FrameLayout2);

///// set webview
mWebView = new WebView(this);
mWebView.setLayoutParams(lparam2);
mWebView.loadUrl("http://www.google.com");
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.setWebViewClient(mWebViewClient);
FrameLayout2.addView(mWebView);
}
WebViewClient mWebViewClient = new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
};
}
==============================================================
AndroidManifest.xml 要加

echochio 發表在 痞客邦 留言(0) 人氣()

網路找到的改一下
package com.test;

import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.text.SpannableString;
import android.text.Spanned;
import android.text.TextUtils.TruncateAt;
import android.text.style.ForegroundColorSpan;
import android.text.style.RelativeSizeSpan;
import android.util.DisplayMetrics;
import android.view.Gravity;
import android.view.Window;
import android.view.WindowManager;
import android.widget.FrameLayout;
import android.widget.TextView;

public class MainActivity extends Activity {
TextView tv;
int width,height;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);


tv =new TextView(this);
FrameLayout.LayoutParams layoutParams_tv = new FrameLayout.LayoutParams(metrics.widthPixels, metrics.heightPixels);
layoutParams_tv.gravity = Gravity.LEFT|Gravity.TOP;
layoutParams_tv.leftMargin = 0;
layoutParams_tv.topMargin = 0;
setContentView(tv);

String str = "每个人都有一个死角, "
+"自己走不出来,别人也闯不进去。 我把最深沉的��密放在那里。你不懂我,我不怪你。 "
+ "每个人都有一道伤口,或深或浅,盖上布,以为不��在。我把最殷红的鲜血涂在那里。你不懂我,我不怪你。"
+ "每个人都有一段告白,忐忑、不安,却饱含真心和勇气。我把最抒情的语言用在那里,你不懂我,我不怪你。"
+ "每个人都有一场爱恋,用心、用情、用力,感动也感伤。我把最炙热的心情藏在那里,你不懂我,我不怪你。"
+ "每个人都有一行眼泪,喝下的冰冷的水,酝酿成的热泪。我把最心酸的委屈汇在那里,你不懂我,我不怪你。";
;
SpannableString spanStr = new SpannableString(str);

for (int i=0;i<(str.length()-2);i+=2) {
spanStr.setSpan(new RelativeSizeSpan(1f), i, i+1,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
spanStr.setSpan(new ForegroundColorSpan(Color.BLACK), i, i+1,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

spanStr.setSpan(new RelativeSizeSpan(2f), i+1, i+2,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
spanStr.setSpan(new ForegroundColorSpan(Color.MAGENTA), i+1, i+2,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
}

tv.setSingleLine();
tv.setEllipsize(TruncateAt.MARQUEE);
tv.setSelected(true);

tv.setText(spanStr);

}
}

echochio 發表在 痞客邦 留言(0) 人氣()

網路上找到的改一下。
package test.com;

import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.text.SpannableString;
import android.text.Spanned;
import android.text.method.ScrollingMovementMethod;
import android.text.style.ForegroundColorSpan;
import android.text.style.RelativeSizeSpan;
import android.util.DisplayMetrics;
import android.view.Gravity;
import android.view.Window;
import android.view.WindowManager;
import android.widget.FrameLayout;
import android.widget.TextView;

public class MainActivity extends Activity {
TextView tv;
int width,height;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);


tv =new TextView(this);
FrameLayout.LayoutParams layoutParams_tv = new FrameLayout.LayoutParams(metrics.widthPixels, metrics.heightPixels);
layoutParams_tv.gravity = Gravity.LEFT|Gravity.TOP;
layoutParams_tv.leftMargin = 0;
layoutParams_tv.topMargin = 0;
setContentView(tv);

String str = "每个人都有一个死角, \n "
+"自己走不出来,别人也闯不进去。\n我把最深沉的放在那里。\n你不懂我,我不怪你。www.baidu.com "
+ "\n每个人都有一道伤口,\n或深或浅,盖上布,以为不在。\n我把最殷红的鲜血涂在那里。\n你不懂我,我不怪你。"
+ "\n每个人都有一段告白,\n忐忑、不安,却饱含真心和勇气。\n我把最抒情的语言用在那里,\n你不懂我,我不怪你。"
+ "\n每个人都有一场爱恋,\n用心、用情、用力,感动也感伤。\n我把最炙热的心情藏在那里,\n你不懂我,我不怪你。"
+ "\n每个人都有一行眼泪,\n喝下的冰冷的水,酝酿成的热泪。\n我把最心酸的委屈汇在那里,\n你不懂我,我不怪你。";
;
SpannableString spanStr = new SpannableString(str);

for (int i=0;i<(str.length()-2);i+=2) {
spanStr.setSpan(new RelativeSizeSpan(1f), i, i+1,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
spanStr.setSpan(new ForegroundColorSpan(Color.BLACK), i, i+1,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

spanStr.setSpan(new RelativeSizeSpan(2f), i+1, i+2,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
spanStr.setSpan(new ForegroundColorSpan(Color.MAGENTA), i+1, i+2,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
}

//设置textview超出屏幕可滚动
tv.setMovementMethod(ScrollingMovementMethod.getInstance());

tv.setText(spanStr);

}
}

echochio 發表在 痞客邦 留言(0) 人氣()

常忘記紀錄一下
AndroidManifest.xml 設定
水平
<activity
..................................................
android:screenOrientation="landscape"

echochio 發表在 痞客邦 留言(0) 人氣()

package com.example.videoview;
//package com.example.framelayout_2_videoview;
import android.net.Uri;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
///////////////////////////////////////
import android.view.View;
import android.util.DisplayMetrics;
import android.view.Window;
import android.view.WindowManager;
import android.widget.Button;
import android.view.*;
import android.view.View.*;
import android.widget.*;
public class MainActivity extends Activity {
Button bt;
FrameLayout FrameLayout2;
FrameLayout FrameLayout1;
DisplayMetrics metrics;
VideoView VideoView1;
int width,height;
int hit=0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
/////////////////////////////////////////
requestWindowFeature(Window.FEATURE_NO_TITLE); //全螢幕設定
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
metrics = new DisplayMetrics();//抓取螢幕大小
getWindowManager().getDefaultDisplay().getMetrics(metrics);
/////////////////////////////////////////
FrameLayout1 = new FrameLayout(this);
FrameLayout1.setLayoutParams(new FrameLayout.LayoutParams(metrics.widthPixels,metrics.heightPixels));
this.setContentView(FrameLayout1);
////////////////////////////////////////////
// FrameLayout2=new FrameLayout(this);
// FrameLayout.LayoutParams lparam2 = new FrameLayout.LayoutParams(metrics.widthPixels,metrics.heightPixels);
// lparam2.gravity = Gravity.LEFT|Gravity.TOP;
// lparam2.leftMargin = 0;//X
// lparam2.topMargin = metrics.heightPixels/2;//Y
// FrameLayout2.setLayoutParams(lparam2);
///////////////////////////////////
VideoView1=new VideoView(this){
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
//setMeasuredDimension(width,height);
//width = getDefaultSize(width, widthMeasureSpec);
//height = getDefaultSize(height, heightMeasureSpec);
setMeasuredDimension(width, height);
}
};
////////////////////////////////////
VideoView1.setVideoURI(Uri.parse("/sdcard/a.mp4"));
MediaController mediaController = new MediaController(this);
VideoView1.setMediaController(mediaController);
////////////////////////////////////////////////////
FrameLayout.LayoutParams layoutParams_VideoView = new FrameLayout.LayoutParams(metrics.widthPixels, metrics.heightPixels);
layoutParams_VideoView.gravity = Gravity.LEFT|Gravity.TOP;
layoutParams_VideoView.leftMargin = 0;//X
layoutParams_VideoView.topMargin = 0;//Y
VideoView1.setLayoutParams(layoutParams_VideoView);
width=metrics.widthPixels;
height=metrics.heightPixels;
VideoView1.getHolder().setFixedSize(width, height);
VideoView1.requestLayout();
VideoView1.invalidate();
////////////////////////////////////////
// bt=new Button;
bt=new Button(this);
bt.setText("start!!");
//bt.setWidth(metrics.widthPixels/10);
//bt.setHeight(metrics.heightPixels/9);
bt.setOnClickListener(new ButListener());
FrameLayout.LayoutParams layoutParams0 = new FrameLayout.LayoutParams(metrics.widthPixels/4, metrics.heightPixels/10);
layoutParams0.gravity = Gravity.LEFT|Gravity.TOP;
layoutParams0.leftMargin = 0;
layoutParams0.topMargin = 0;
bt.setLayoutParams(layoutParams0);
FrameLayout1.addView(bt);
/////////////////////////////////////////////////
//FrameLayout2.addView(VideoView1);
//FrameLayout2.setVisibility(View.VISIBLE);//show
VideoView1.start();
/////////////////////////////////////////////////
FrameLayout1.addView(VideoView1);
FrameLayout1.setVisibility(View.VISIBLE);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
class ButListener implements OnClickListener
{
public void onClick(View v)
{
if (v==bt)
{
if (hit==0)
{
bt.setText("Hit !!");
FrameLayout.LayoutParams layoutParams_VideoView = new FrameLayout.LayoutParams(metrics.widthPixels, metrics.heightPixels);
layoutParams_VideoView.gravity = Gravity.LEFT|Gravity.TOP;
layoutParams_VideoView.leftMargin = 0;//X
layoutParams_VideoView.topMargin = 0;//Y
VideoView1.setLayoutParams(layoutParams_VideoView);
width=metrics.widthPixels;
height=metrics.heightPixels;
VideoView1.getHolder().setFixedSize(width, height);
VideoView1.requestLayout();
VideoView1.invalidate();
hit++;
}
else if (hit==1)
{
bt.setText("hit !!");
FrameLayout.LayoutParams layoutParams_VideoView = new FrameLayout.LayoutParams(metrics.widthPixels/2, metrics.heightPixels/2);
layoutParams_VideoView.gravity = Gravity.LEFT|Gravity.TOP;
layoutParams_VideoView.leftMargin = 0;//X
layoutParams_VideoView.topMargin = 0;//Y
VideoView1.setLayoutParams(layoutParams_VideoView);
width=metrics.widthPixels/2;
height=metrics.heightPixels/2;
VideoView1.getHolder().setFixedSize(width, height);
VideoView1.requestLayout();
VideoView1.invalidate();
hit--;
}
}
}
}
}

echochio 發表在 痞客邦 留言(0) 人氣()

 
看到好影片記錄下來
http://www.youtube.com/watch?v=lsHPy2W4yxA

echochio 發表在 痞客邦 留言(0) 人氣()

AD 2003 ==> 2008
 
 http://www.youtube.com/watch?v=p4hoOFzCwO0

echochio 發表在 痞客邦 留言(0) 人氣()

Display defaultDisplay = ((WindowManager)getSystemService(WINDOW_SERVICE)).getDefaultDisplay();
 
int width = defaultDisplay.getWidth();
int height = defaultDisplay.getHeight();

echochio 發表在 痞客邦 留言(0) 人氣()

Android1
1 .先安裝 bluestacks 請參照 google 上找到的
我是依照  http://forum.gamer.com.tw/C.php?bsn=23805&snA=152582 此網址安裝的
 

echochio 發表在 痞客邦 留言(0) 人氣()

I try is ok ===>
 --------------------------------------------------------------------------------------------
[root@node1 ~]# more drbd_check.sh
#!/bin/bash
info_drbd=`cat /proc/drbd |grep Secondary |grep Unknown`
info_drbd_no=""
if [ "$info_drbd" == "$info_drbd_no" ]
then
cat /proc/drbd|grep Primary
echo ok
else
info_drbd_node=`crm_mon -1 |grep Masters |grep node1`
if [ "$info_drbd" == "$info_drbd_no" ]
then
crm_mon -1
else
echo Masters : node2
echo drbd Secondary/Unknown
drbdadm secondary all
drbdadm disconnect all
drbdadm -- --discard-my-data connect all
ssh node2 "drbdadm primary all"
ssh node2 "drbdadm disconnect all"
ssh node2 "drbdadm connect all"
cat /proc/drbd
fi
fi
----------------------------------------------------------

echochio 發表在 痞客邦 留言(0) 人氣()

Blog Stats
⚠️

成人內容提醒

本部落格內容僅限年滿十八歲者瀏覽。
若您未滿十八歲,請立即離開。

已滿十八歲者,亦請勿將內容提供給未成年人士。