Android 界面布局

目的

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


image.png

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

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

具体实施

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

  • 控件的尺寸
  • 父视图:
  • 子视图:
  • 将一个控件添加到一个容器中,控件就是这个容器的子视图
  • 容器就是这个控件的父视图
  • 1.match_parent 和父视图一样大
  • 2.wrap_content 包裹内容 和控件的内容一样大
  • 3.20dp 具体尺寸





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;
            }
        });

小结:

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

你可能感兴趣的:(Android 界面布局)