日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android(五)——控制UI界面的方法

發(fā)布時間:2025/3/13 Android 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android(五)——控制UI界面的方法 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

文章目錄

  • 1. 使用XML布局文件控制UI界面(推薦)
  • 2. 在Java代碼中控制UI界面
  • 3. 使用XML和Java代碼混合控制UI界面
  • 4. 開發(fā)自定義的View

1. 使用XML布局文件控制UI界面(推薦)

步驟:

(1)在Android應用的res/layout目錄下編寫XML布局文件

(2)在Activity中使用以下Java代碼顯示XML文件中的布局內(nèi)容

setContentView(R.layout.activity_main)


實例:使用XML布局文件實現(xiàn)游戲的開始界面

(1)添加名為xmllayout的Module


(2)將背景圖片bg.png復制到mipmap目錄下


(3)activity_main.xml文件和strings.xml文件



(4)運行結(jié)果

出現(xiàn)如下錯誤:


在xmllayout對應的build.gradle文件中添加如下圖的兩行代碼


再次運行后,成功運行

2. 在Java代碼中控制UI界面

實例:實現(xiàn)游戲的進入界面

(1)添加名為javalayout的Module





(2)創(chuàng)建成功名為javalayout的Module后,刪除layout目錄下的activity_main.xml文件


(3)修改MainActivity文件如下:

package com.zz; import android.content.DialogInterface; import android.graphics.Color; import android.support.v7.app.AlertDialog; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import android.util.TypedValue; import android.view.Gravity; import android.view.View; import android.view.ViewGroup; import android.widget.FrameLayout; import android.widget.TextView;public class MainActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);FrameLayout frameLayout=new FrameLayout(this); //創(chuàng)建布局管理器對象frameLayout.setBackgroundResource(R.mipmap.bg); //設(shè)置背景setContentView(frameLayout); //添加布局管理器TextView text1 = new TextView(this); //創(chuàng)建文本框組件text1.setText("開始游戲"); //設(shè)置顯示文本text1.setTextSize(TypedValue.COMPLEX_UNIT_SP,18); //設(shè)置字體大小text1.setTextColor(Color.rgb(255,222,173)); //設(shè)置字體顏色FrameLayout.LayoutParams params=new FrameLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,ViewGroup.LayoutParams.WRAP_CONTENT); //設(shè)置布局參數(shù),布局高度和布局寬度params.gravity= Gravity.CENTER; //設(shè)置居中text1.setLayoutParams(params); //為text1設(shè)置布局參數(shù)//為文本框組件設(shè)置一個單擊事件text1.setOnClickListener(new View.OnClickListener(){@Overridepublic void onClick(View v) {new AlertDialog.Builder(MainActivity.this).setTitle("系統(tǒng)提示").setMessage("游戲有風險,進入需謹慎,真的要進入嗎?").setPositiveButton("確定",new DialogInterface.OnClickListener(){@Overridepublic void onClick(DialogInterface dialog, int which) {Log.i("桌面臺球","進入游戲");}}).setNegativeButton("退出",new DialogInterface.OnClickListener(){@Overridepublic void onClick(DialogInterface dialog, int which) {Log.i("桌面臺球","退出游戲");finish();}}).show();}});frameLayout.addView(text1); //將文本框組件添加到布局管理器中} }

(4)運行結(jié)果:


點擊開始運行按鈕

3. 使用XML和Java代碼混合控制UI界面

實例:實現(xiàn)QQ相冊照片列表界面

(1)添加名為xmljavalayout的Module,并把12張圖片資源復制到mipmap目錄中


(2)修改activity_main.xml文件如下:

<?xml version="1.0" encoding="utf-8"?> <GridLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:id="@+id/layout"android:orientation="horizontal"android:rowCount="3"android:columnCount="4"android:layout_width="match_parent"android:layout_height="match_parent"android:paddingBottom="16dp"android:paddingLeft="16dp"android:paddingRight="16dp"android:paddingTop="16dp"tools:context="com.zz.MainActivity"> </GridLayout>

(3)修改MainActivity.java文件如下:

package com.zz; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.ViewGroup; import android.widget.GridLayout; import android.widget.ImageView;public class MainActivity extends AppCompatActivity {private ImageView[] img=new ImageView[12]; //創(chuàng)建保存圖形視圖的數(shù)組,放置12張圖片private int[] imagePath=new int[]{R.mipmap.img01,R.mipmap.img02,R.mipmap.img03,R.mipmap.img04,R.mipmap.img05,R.mipmap.img06,R.mipmap.img07,R.mipmap.img08,R.mipmap.img09,R.mipmap.img10,R.mipmap.img11,R.mipmap.img12}; //要訪問的圖片資源@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);GridLayout layout=(GridLayout) findViewById(R.id.layout); //獲取網(wǎng)格布局管理器對象layout,for(int i=0;i<imagePath.length;i++){img[i]=new ImageView(MainActivity.this); //創(chuàng)建ImageView組件img[i].setImageResource(imagePath[i]); //設(shè)置要顯示的圖片img[i].setPadding(2,2,2,2); //設(shè)置內(nèi)邊距ViewGroup.LayoutParams params=new ViewGroup.LayoutParams(116,68); //設(shè)置圖片的寬度和高度img[i].setLayoutParams(params);layout.addView(img[i]); //把圖片添加到布局管理器中}} }

(4)運行結(jié)果:

4. 開發(fā)自定義的View

實例:實現(xiàn)跟隨手指的兔子

(1)添加名為myview的Module,并把背景圖片和兔子圖片復制到mipmap目錄中


(2)修改activity_main.xml文件:

<?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:paddingBottom="16dp"android:paddingLeft="16dp"android:paddingRight="16dp"android:paddingTop="16dp"android:background="@mipmap/background"android:id="@+id/mylayout"tools:context="com.zz.MainActivity"></FrameLayout>

(3)在java/com.zz目錄下創(chuàng)建RabbitView類

package com.zz;import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.graphics.Paint; import android.view.View;public class RabbitView extends View{//小兔子橫坐標public float bitmapX;//小兔子縱坐標public float bitmapY;//在構(gòu)造方法中設(shè)置兔子初始位置public RabbitView(Context context) {super(context);bitmapX = 290;bitmapY = 130;}//重寫一個方法:鼠標右鍵-->Generate-->Override Methods(覆蓋方法)-->直接輸入就可查找//根據(jù)小兔子的圖片來繪制小兔子@Overrideprotected void onDraw(Canvas canvas) {super.onDraw(canvas);//定義畫筆對象Paint paint = new Paint();//定義繪圖對象Bitmap bitmap = BitmapFactory.decodeResource(this.getResources(),R.mipmap.rabbit);//需要指定四個參數(shù):1.創(chuàng)建的bitmap對象 2.x坐標 3.y坐標 4.畫筆對象canvas.drawBitmap(bitmap,bitmapX,bitmapY,paint);//強制回收圖片if(bitmap.isRecycled()){bitmap.recycle();}} }

(4)修改MainActivity.java文件:

package com.zz;import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.MotionEvent; import android.view.View; import android.widget.FrameLayout;public class MainActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//獲取布局管理器FrameLayout frameLayout = (FrameLayout)findViewById(R.id.mylayout);//實例化兔子對象final RabbitView rabbit = new RabbitView(this);//為小兔子設(shè)置觸摸事件監(jiān)聽器,參數(shù)用匿名內(nèi)部類來指定rabbit.setOnTouchListener(new View.OnTouchListener(){@Overridepublic boolean onTouch(View view, MotionEvent motionEvent) {rabbit.bitmapX = motionEvent.getX();rabbit.bitmapY = motionEvent.getY();//重繪這只兔子rabbit.invalidate();return true;}});frameLayout.addView(rabbit);} }

(5)運行結(jié)果



可以看到兔子圖片隨著鼠標位置的移動而移動

總結(jié)

以上是生活随笔為你收集整理的Android(五)——控制UI界面的方法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。