view.setX()方法
时间: 2024-04-22 18:23:05 浏览: 90
view.setX()方法是Android中View类的一个方法,它用于设置视图在X轴方向上的位置。具体来说,它会将视图的左边缘距离视图所在父容器的左边缘的距离设置为指定的值。例如,如果view.setX(100)被调用,则视图的左边缘会距离它所在的父容器的左边缘100个像素的距离。需要注意的是,这个方法是在Android 3.0及以上版本才被引入的。
相关问题
解释代码package com.example.myapplication_7; import android.annotation.SuppressLint; import android.os.Handler; import android.os.Message; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.ImageView; import android.widget.TextView; import android.widget.Toast; import androidx.annotation.NonNull; import androidx.appcompat.app.AppCompatActivity; import java.util.Random; public class MainActivity extends AppCompatActivity { public static final int MSG_CODE = 87987987; public static final int MAX_NUMBER = 20; public static final int RANDOM_NUMBER = 500; private TextView result_View,cd_view; private Button start_Btn; private ImageView diglet_View; private int totalCount,hitCount,steps,delayTime; private int[][] position_Array; //将消息传给主线程 private Handler handler = new Handler(){ @SuppressLint("HandlerLeak") @Override public void handleMessage(@NonNull Message msg) { super.handleMessage(msg); switch (msg.what){ case MSG_CODE: //点击次数大于20时游戏结束 if (totalCount > MAX_NUMBER){ clear(); //游戏结束,Toast弹窗提示 Toast.makeText(MainActivity.this, "游戏结束", Toast.LENGTH_SHORT).show(); return; } int cc = MAX_NUMBER-totalCount; cd_view.setText("已出现了"+totalCount+"只地鼠,还剩"+cc+"只地鼠"); steps = msg.arg1; MainActivity.this.diglet_View.setX(MainActivity.this.position_Array[steps][0]); MainActivity.this.diglet_View.setY(MainActivity.this.position_Array[steps][1]); MainActivity.this.diglet_View.setVisibility(View.VISIBLE); int randomTime = new Random().nextInt(RANDOM_NUMBER) + RANDOM_NUMBER; MainActivity.this.code(randomTime); break; } } };
这段代码是一个 Android 应用的主活动类 MainActivity,其中包含了一些成员变量和方法。其中成员变量包括了一些常量,如 MSG_CODE、MAX_NUMBER 和 RANDOM_NUMBER,以及一些用于显示游戏结果的 TextView 和 ImageView 控件,以及一个用于开始游戏的 Button 控件。还有一个二维数组 position_Array 表示地鼠出现的位置。方法中最重要的是 handleMessage 方法,该方法用于处理游戏中地鼠出现的位置和出现时间的控制,同时还有游戏结束的处理。该方法通过将消息传递给主线程来实现地鼠的出现和消失,并且通过 Toast 弹窗来提示游戏结束。
View v = new View(mContext); LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(dp2px(mContext, 29.5f), dp2px(mContext, 31.5f)); v.setLayoutParams(params); v.setBackgroundResource(R.mipmap.manual_touch_point); v.setX((x - dp2px(mContext, 14.75f))); v.setY((y - dp2px(mContext, 15.75f))); frameLayout.addView(v); 为什么阿拉伯语时addView不显示
可能是因为阿拉伯语是从右向左的书写方向,导致你添加的 View 在屏幕的左侧看不到。你可以尝试将 View 的位置调整到屏幕的右侧,或者在添加 View 前将布局的方向设置为从左向右,即在 Activity 或 Application 的 onCreate() 方法中添加以下代码:
```
getWindow().getDecorView().setLayoutDirection(View.LAYOUT_DIRECTION_LTR);
```
这样应该可以解决阿拉伯语下 addView 不显示的问题。
阅读全文