首頁手機單機攻略→ 我的世界手機版JS開發(fā)教程怎么制作gui

我的世界手機版JS開發(fā)教程怎么制作gui

作者:佚名來源:本站整理2015/12/14 9:40:12我要評論

小編為大家?guī)砹恕段业氖澜纭肥謾C版的一個技術(shù)教程,這次教大家如何制作JS的GUI,是不是有很多有想要制作JS的玩家不知道如何制作GUI,這里小編為大家?guī)砹嗽敿毜慕坛,有興趣的玩家都來看看吧。

要學gui,請不要問變量是啥

var ctx= com.mojang.minecraftpe.MainActivity.currentMainActivity.get()

獲取一個主界面,必須的

ctx變量為一個主界面。

有主界面就可以進入線程了(線程是一個加快js運行并操控gui的必須)

ctx.runOnUiThread(newjava.lang.Runnable({run:function()

{

//線程內(nèi)部

}}}));

然后就涉及到了顯示gui的控件和布局

var ppw=newandroid.widget.PopupWindow();

//聲明變量ppw為一個懸浮窗。可以理解為一個屏幕,可以顯示東西

varlayout=newandroid.widget.RelativeLayout(ctx);

//聲明變量layout為一個布局也就是一個排列東西的東西(默認為縱向)

如果i是一個按鈕那么

i

i

i

如"圖"三個按鈕顯示在布局里,這就是布局

有了以上資源我們認識一下像素以及他們的設(shè)置

不知哪位大大創(chuàng)造的自定義函數(shù) 像素

functiondip2px(ctx,dips){

return Math.ceil(dips*ctx.getResources().getDisplayMetrics().density);

}


dip2px(ctx,幾像素 數(shù)字)

---------------------------------------------------------

dip2px(ctx,幾像素 數(shù)字)調(diào)用方法

GUI就是剛才的懸浮窗ppw

GUI.setContentView()//設(shè)置GUI所展示的東西,()里填以后講

GUI.setWidth();//寬

GUI.setHeight();//高

上兩個應該填dip2px(ctx,幾像素)

還有顯示gui

GUI.showAtLocation(ctx.getWindow().getDecorView(),android.view.Gravity.左右|android.view.Gravity.上下,橫偏移,縱偏移);

左右填LEFT是左 RIGHT是右,上下填TOP上或者BOTTOM下 大寫

橫偏移就是如果左右填左就是離左多少距離,填右就是…縱偏移以此類推

然后就進入我們的視圖了

視圖就是andriod安卓提供的控件比如按鈕,文本,拖動條等等

先來按鈕

varbutton=newandroid.widget.Button(ctx);

button.setText("X");


button.setOnClickListener(newandroid.view.View.OnClickListener({onClick:function(viewarg){


}}));

layout.addView(button);



別急我們來拆開分析

var空格button=new空android.widget.Button(ctx);

聲明變量button是一個Button(按鈕控件)

button.setText("x")

他的顯示的文本是x

button.setOnClickListener(newandroid.view.View.OnClickListener({onClick:function(viewarg){

//點擊按鈕運行

}}));

layout.addView(button);

在layout上增加button控件

我們可以設(shè)置他

GUI.setContentView()//設(shè)置GUI所展示的

可以填button就是我們的按鈕直接顯示

也可以 GUI.setContentView(layout)

顯示出布局都可以

正確例子

function dip2px(ctx,dips)

{

return Math.ceil(dips*ctx.getResources().getDisplayMetrics().density);

}

function newLevel(){

var ctx= com.mojang.minecraftpe.MainActivity.currentMainActivity.get()

ctx.runOnUiThread(new java.lang.Runnable({run:function()

{

try{

var simpleGUI=new android.widget.PopupWindow()

var layout=new android.widget.RelativeLayout(ctx);

var button=new android.widget.Button(ctx)

button.setText("X")

button.setOnClickListener(new android.view.View.OnClickListener({onClick:function(viewarg){

print("點擊")

}}))

layout.addView(button)

simpleGUI.setContentView(layout)

simpleGUI.setWidth(70)

simpleGUI.setHeight(70)

simpleGUI.showAtLocation(ctx.getWindow().getDecorView(),android.view.Gravity.LEFT|android.view.Gravity.BOTTOM,0,0);

}

catch(err){print("Error:"+err)

}}}))


}

布局方向

layout.setOrientation(1)豎向

0為橫向

GUI.setFocusable(true)是不是點擊gui以外的地方gui消失


true是false不是

在例子中我們用了simpleGUI作為gui顯示基礎(chǔ)"屏幕",用layout顯示了button按鈕在simpleGUI上如此就成功了

而如何消除gui尼???就用到了GUI.dismiss。注意GUI是我們比喻的"屏幕"而不是按鈕神馬的

關(guān)于gui"屏幕"還有很多設(shè)置比如 GUI.setBackgroundDrawable(new android.graphics.drawable.ColorDrawable(android.graphics.Color.argb(127,0,0,0)))設(shè)置背景顏色等等

回顧按鈕 

var空格button=new空android.widget.Button(ctx);

聲明變量button是一個Button(按鈕控件)

button.setText("x")

他的顯示的文本是x

button.setOnClickListener(new android.view.View.OnClickListener({onClick:function(viewarg){

//點擊按鈕運行

}}));

button.setTextColor(android.graphics.Color.rgb(1,1,1))

設(shè)置字體顏色

button.setBackgroundColor(android.graphics.Color.argb(127,251,251,251));

背景顏色


注color.rgb(,,)是調(diào)色分別填red(紅) green(綠) blue(藍)顏色

color.argb(,,,)填透明,紅,綠,藍

color.argb()和color.rgb()每個空可以填0到255調(diào)色

var stitle=new android.widget.TextView(ctx)

//把stitle賦值為TextView文本視圖

stitle.setTextColor(android.graphics.Color.rgb(255,255,255))

//字體顏色,好像不能設(shè)置背景色

stitle.setText("文本")//文本

stitle.setTextSize(13)//字體大小

layout.addView(stitle)


//布局上增加

var edit=new android.widget.EditText(ctx)//輸入框

edit.setTextColor(android.graphics.Color.rgb(1,1,1))//字體顏色

edit.setHint("請輸入數(shù)字")//提示

edit.setInputType(android.text.InputType.TYPE_CLASS_NUMBER)//類型為數(shù)字不加這個為文本

edit.setText("0")//設(shè)置字

layout.addView(edit)//顯示

var check=new android.widget.CheckBox(ctx);

check.setTextColor(android.graphics.Color.YELLOW);

check.setText("疾跑模式");

check.setChecked();//顯是是否打?qū)μ柼顃rue,false或者一個布爾值變量

check.setOnCheckedChangeListener(new android.widget.CompoundButton.OnCheckedChangeListener(){

onCheckedChanged:function(v, isChecked){

//點擊執(zhí)行 isChecked是是否打?qū)μ柌紶栔?nbsp;,變量=isChecked可以作為這個的開關(guān)check.setChecked()里面填這個變量可以做到一個變量當開關(guān)

}});

layout.addView(check);

var ctx=com.mojang.minecraftpe.MainActivity.currentMainActivity.get()

var layout=new android.widget.LinearLayout(ctx)

try{

var menu=new android.widget.PopupWindow(layout, dip2px(ctx,75), dip2px(ctx,30));

menu.setFocusable(true)

var layout=new android.widget.LinearLayout(ctx)

layout.setOrientation(1)


var button=new android.widget.Button(ctx);

button.setText("確定");

button.setOnClickListener(new android.view.View.OnClickListener({

onClick:function(viewarg) {


}}));

layout.addView(button);


var mlayout=makeMenu(ctx,layout)

menu.setContentView(mlayout)

menu.setWidth(ctx.getWindowManager().getDefaultDisplay().getWidth()/3.3333333333);

menu.setHeight(ctx.getWindowManager().getDefaultDisplay().getHeight());


menu.setBackgroundDrawable(new android.graphics.drawable.ColorDrawable(android.graphics.Color.argb(127,0,0,0)))

menu.showAtLocation(ctx.getWindow().getDecorView(),android.view.Gravity.RIGHT | android.view.Gravity.TOP,0,0);

}catch(err){

toast(err)

}


function makeMenu(ctx,layout){ 

var mlayout=new android.widget.RelativeLayout(ctx) 

var svParams=new android.widget.RelativeLayout.LayoutParams(android.widget.RelativeLayout.LayoutParams.FILL_PARENT,android.widget.RelativeLayout.LayoutParams.FILL_PARENT) 

var scrollview=new android.widget.ScrollView(ctx) 

var pad=dip2px(ctx,2) 

scrollview.setPadding(pad,pad,pad,pad) 

scrollview.setLayoutParams(svParams) 

scrollview.addView(layout) 

mlayout.addView(scrollview) 

return mlayout 

}

菜單少了像素函數(shù)

先看這個

var ctx=com.mojang.minecraftpe.MainActivity.currentMainActivity.get()

var layout=new android.widget.LinearLayout(ctx)

try{

var menu=new android.widget.PopupWindow(layout, dip2px(ctx,75), dip2px(ctx,30));

menu.setFocusable(true)

var layout=new android.widget.LinearLayout(ctx)

layout.setOrientation(1)


var button=new android.widget.Button(ctx);

button.setText("確定");

button.setOnClickListener(new android.view.View.OnClickListener({

onClick:function(viewarg) {


}}));

layout.addView(button);


var mlayout=makeMenu(ctx,layout)

menu.setContentView(mlayout)

menu.setWidth(ctx.getWindowManager().getDefaultDisplay().getWidth()/3.3333333333);

menu.setHeight(ctx.getWindowManager().getDefaultDisplay().getHeight());


menu.setBackgroundDrawable(new android.graphics.drawable.ColorDrawable(android.graphics.Color.argb(127,0,0,0)))

menu.showAtLocation(ctx.getWindow().getDecorView(),android.view.Gravity.RIGHT | android.view.Gravity.TOP,0,0);

}catch(err){

toast(err)

}

大家能看懂吧 先看這個


var menu=new android.widget.PopupWindow(layout, dip2px(ctx,75), dip2px(ctx,30));

這個是我們比喻的"屏幕"


function makeMenu(ctx,layout){ 

var mlayout=new android.widget.RelativeLayout(ctx) 

var svParams=new android.widget.RelativeLayout.LayoutParams(android.widget.RelativeLayout.LayoutParams.FILL_PARENT,android.widget.RelativeLayout.LayoutParams.FILL_PARENT) 

var scrollview=new android.widget.ScrollView(ctx) 

var pad=dip2px(ctx,2) 

scrollview.setPadding(pad,pad,pad,pad) 

scrollview.setLayoutParams(svParams) 

scrollview.addView(layout) 

mlayout.addView(scrollview) 

return mlayout 

}

哪位大大設(shè)置只要

設(shè)置好布局layout后

var 變量=makeMenu(ctx,layout/*布局變量*/)

變量就好像加工過一樣變成菜單


然后顯示這個變量就可以了

大家不熟悉這個時候還是

var ctx=com.mojang.minecraftpe.MainActivity.currentMainActivity.get()

var layout=new android.widget.LinearLayout(ctx)

try{

var menu=new android.widget.PopupWindow(layout, dip2px(ctx,75), dip2px(ctx,30));

menu.setFocusable(true)

var layout=new android.widget.LinearLayout(ctx)

layout.setOrientation(1)

var button=new android.widget.Button(ctx);

button.setText("確定");

button.setOnClickListener(new android.view.View.OnClickListener({

onClick:function(viewarg) {

}}));

layout.addView(button);

布局添加地

var mlayout=makeMenu(ctx,layout)

menu.setContentView(mlayout)

menu.setWidth(ctx.getWindowManager().getDefaultDisplay().getWidth()/3.3333333333);

menu.setHeight(ctx.getWindowManager().getDefaultDisplay().getHeight());

menu.setBackgroundDrawable(new android.graphics.drawable.ColorDrawable(android.graphics.Color.argb(127,0,0,0)))

menu.showAtLocation(ctx.getWindow().getDecorView(),android.view.Gravity.RIGHT | android.view.Gravity.TOP,0,0);

}catch(err){

toast(err)

}

function makeMenu(ctx,layout){ 

var mlayout=new android.widget.RelativeLayout(ctx) 

var svParams=new android.widget.RelativeLayout.LayoutParams(android.widget.RelativeLayout.LayoutParams.FILL_PARENT,android.widget.RelativeLayout.LayoutParams.FILL_PARENT) 

var scrollview=new android.widget.ScrollView(ctx) 

var pad=dip2px(ctx,2) 

scrollview.setPadding(pad,pad,pad,pad) 

scrollview.setLayoutParams(svParams) 

scrollview.addView(layout) 

mlayout.addView(scrollview) 

return mlayout 

}

用這個比較好

我們只要把他放到自定義函數(shù)中

比如

var 菜單=function(){上面的菜單}

記得加上像素函數(shù)

就可以了

調(diào)用時 菜單() 就可以彈出菜單

var seekbar=new android.widget.SeekBar(ctx)//定義拖動條

seekbar.setMax(255)//拖動條長度

seekbar.setProgress(0)//顯示時拖動到什么地方

//↓拖動時

seekbar.setOnSeekBarChangeListener(new android.widget.SeekBar.OnSeekBarChangeListener({

onProgressChanged:function(v){

seekbar.getProgress()//獲取拖動位置

}}))


layout.addView(seekbar)//顯示

還有選擇框 var ll=new android.widget.Spinner(ctx)//定義

var k=new android.widget.ArrayAdapter(ctx,android.R.layout.preference_category,new java.lang.String("無,1").split(","))//適配器

ll.setOnItemSelectedListener(new android.widget.AdapterView.OnItemSelectedListener(){

onItemSelected:function(w){

ll.getSelectedItemId()//獲取行數(shù)

}})

ll.setAdapter(k)//選擇適配器

layout.addView(ll)//顯示

對話框

var dialog=new android.app.AlertDialog.Builder(ctx)

dialog.setTitle("xx")//標題

dialog.setMessage("xx")//內(nèi)容


dialog.setNegativeButton("按鈕",new android.content.DialogInterface.OnClickListener(){

onClick: function(dia,w){

}})//增加一個按鈕

dialog.show()


因為安卓控件都可以在layout布局上顯示所以只要添加到布局就可以了

比如

var button=按鈕控件

button.xxxx(xxx)設(shè)定完

layout.addView(button)

就顯示了

然后用GUI"屏幕"顯示它就可以了

控件.setVisibility(數(shù)字)

數(shù)字填0顯示,填4不顯示但占空間,填8完全不顯示

bar=new android.widget.ProgressBar()

bar.setMax(最大)

bar.setProgress(進度)}

以上。

0相關(guān)評論

發(fā)表評論

最新最熱相關(guān)資源

安卓蘋果應用推薦