Android 界面布局

目的

1.了解AndroidStudio任务栏目录作用


image.png

2.学习系统自带的控件
3.学习两种界面布局:

  • 1.xml配置
  • 2.使用java代码创建

具体实施

先将需要的资源翻入drawable包内
xml配置部分:

  • 控件的尺寸
  • 父视图:
  • 子视图:
  • 将一个控件添加到一个容器中,控件就是这个容器的子视图
  • 容器就是这个控件的父视图
  • 1.match_parent 和父视图一样大
  • 2.wrap_content 包裹内容 和控件的内容一样大
  • 3.20dp 具体尺寸
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity"
    android:id="@+id/fl_main"
    >
<ImageView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:src="@drawable/bg"/>
<ImageView
    android:id="@+id/iv_forground"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    />
</FrameLayout>

Java配置部分:

  • 使用java代码来布局界面
  • 通过添加id号可以唯一标识某一控件 组件或容器
  • android:id="@+id/fl_main"
public class MainActivity extends AppCompatActivity {
    ImageView forground;
    Bitmap orgBitmap;
    Bitmap  copyBitmap;
    Canvas canvas;
    Paint paint;
    Matrix matrix;
    @Override //创建一个界面 界面如何布局
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_main);
 //找到容器里面的图片视图控件、
        //findViewById
         forground = findViewById(R.id.iv_forground);
//将需要操作的图片读取出来 Bitmap
      orgBitmap = BitmapFactory.decodeResource(getResources(),R.drawable.fr);
        //操作这张图片 用透明色去替换某个位置的颜色
        //不能操作原图 只能copy一份
        //创建一个和原始图片相同环境的空位图
         copyBitmap = Bitmap.createBitmap(orgBitmap.getWidth(),orgBitmap.getHeight(),orgBitmap.getConfig());
        //创建一个Canvas 画布-现实中的画板
        canvas = new Canvas(copyBitmap);
        //创建一个画笔
     paint =new Paint();
        //创建一个矩阵
        Matrix matrix = new Matrix();
       
        //画一幅图
        canvas.drawBitmap(orgBitmap,matrix,paint);
        //显示图片
        forground.setImageBitmap(copyBitmap);
       //给前景图片添加touch事件
        //当有触摸事件发生 系统就会将这个事件接收并回调这个事件
        forground.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                //获取当前事件
                int action = event.getAction();
                //判断状态
                if(action == MotionEvent.ACTION_MOVE){
                    //获取触摸点的坐标
                    int x =(int) event.getX();
                    int y = (int)event.getY();
                    //替换x,y对应的像素
                    for(int i=-8;i<8;i++){
                        for (int j = -8; j < 8; j++) {
                            copyBitmap.setPixel(x+i,y+j,Color.TRANSPARENT);
                        }
                    }
                   // canvas.drawBitmap(orgBitmap,new Matrix(),paint);
                    forground.setImageBitmap(copyBitmap);
                }
                return true;
            }
        });

小结:

今天听了学长分享的经验感觉受益匪浅,对不远的未来多了一份信心。感觉来学习是个正确的选择。今天的内容虽然多也都是新内容,但是感觉很有趣。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容