首頁 → 手機單機攻略→ 我的世界手機版JS開發(fā)教程怎么制作gui
小編為大家?guī)砹恕段业氖澜纭肥謾C版的一個技術(shù)教程,這次教大家如何制作JS的GUI,是不是有很多有想要制作JS的玩家不知道如何制作GUI,這里小編為大家?guī)砹嗽敿毜慕坛蹋信d趣的玩家都來看看吧。
要學(xué)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();//高
上兩個應(yīng)該填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(進度)}
以上。
相關(guān)文章
- 15-12-14我的世界0.13.0怎么做船電梯 超速超快船電梯
- 15-12-14我的世界0.13.0挖礦技巧 怎么快速挖鉆石
最新最熱相關(guān)資源
文章排行
安卓蘋果應(yīng)用推薦
便娘收藏類型:益智休閑大小:17M
下載幸運樂園類型:益智休閑大。18.8M
下載金屬轉(zhuǎn)輪類型:動作冒險大。20M
下載蘭博基尼Urus遨游迪拜模擬器手機版(City Drive Urus)類型:模擬經(jīng)營大。71.6M
下載菇菇逃脫游戲(なめよん)類型:益智休閑大。60.9M
下載音樂世界Cytus2類型:益智休閑大小:1.52G
下載
萬萬沒想到之大皇帝iPhone/ipad版類型:策略棋牌大。165M
下載Pool Break 3D桌球iphone/ipad版類型:體育游戲大。8.4M
下載食人魚3DD iphone版類型:動作游戲大。60.9M
下載Jelly Defense果凍塔防iphone/ipad版類型:策略游戲大。298M
下載Munch Time午餐時間iphone/ipad版類型:休閑益智大小:23.8M
下載Tiny Troopers小小部隊iphone/ipad破解版類型:射擊游戲大。48.1M
下載
最新文章
- 櫻花校園模擬器更新了什么-櫻花校園模擬器更櫻花校園模擬器更新了什么-櫻花校園模擬器更
- 2021年仙俠手游排行榜_2021年最好玩的仙俠手2021年仙俠手游排行榜_2021年最好玩的仙俠手
- 商戰(zhàn)模擬游戲排行榜_商戰(zhàn)模擬游戲商戰(zhàn)模擬游戲排行榜_商戰(zhàn)模擬游戲
- 多人合作闖關(guān)游戲_ 好玩的多人合作游戲多人合作闖關(guān)游戲_ 好玩的多人合作游戲
- 擬真類賽車游戲_最仿真的賽車模擬游戲擬真類賽車游戲_最仿真的賽車模擬游戲
- 2021最好玩手游_2021的十大熱門游戲推薦2021最好玩手游_2021的十大熱門游戲推薦
- 創(chuàng)造類游戲有哪些_創(chuàng)造類游戲排行榜創(chuàng)造類游戲有哪些_創(chuàng)造類游戲排行榜
- 塔防類游戲排行榜前十名-有哪些比較好玩的塔塔防類游戲排行榜前十名-有哪些比較好玩的塔