美文网首页Android进阶之路Android开发Android开发
Android应用开发笔记之ImageView使用(六)

Android应用开发笔记之ImageView使用(六)

作者: Lee_5566 | 来源:发表于2019-07-29 20:00 被阅读23次
    image.png

    目录

    第一篇:Android应用开发笔记之Android Studio第一个程序(一)
    第二篇:Android应用开发笔记之线性布局LinearLayout(二)
    第三篇:Android应用开发笔记之线性布局LinearLayout(二)小练习
    第四篇:Android应用开发笔记之相对布局RelativeLayout(三)
    第五篇:Android应用开发笔记之绘图[上](四)
    第五篇:Android应用开发笔记之绘图[下](四)
    第六篇:Android应用开发笔记之绘图(四)小练习[画心]
    第七篇:Android应用开发笔记之RadioGroup控件(五)
    第八篇:Android应用开发笔记之ImageView使用(六)

    ImageView

    ImageView是图片控件,可以使用其显示图片.

    xml写法:

        <ImageView
            android:id="@+id/imageView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            tools:srcCompat="@tools:sample/backgrounds/scenic[0]" />
    

    加载图片入项目

    为了引用图片,需要先加载图片.

    进入到项目的生成目录里,找到对应的res目录下的drawable中:

    image.png
    如上图,讲两个图片放在此目录下.
    这样我们就可以在项目中看到想要的图片了. image.png

    然后尝试加载图片:

        <ImageView
            android:id="@+id/imageView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            tools:srcCompat="@drawable/001.jpg" />
    

    但是编译报错了Error: The resource name must start with a letter

    Caused by: com.android.build.gradle.tasks.ResourceException: /home/user/AndroidStudioProjects/image/app/src/main/res/drawable/001.jpg: Error: The resource name must start with a letter
        at com.android.build.gradle.tasks.MergeResources.doIncrementalTaskAction(MergeResources.java:424)
        at com.android.build.gradle.internal.tasks.IncrementalTask.taskAction(IncrementalTask.java:110)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:73)
        at org.gradle.api.internal.project.taskfactory.IncrementalTaskAction.doExecute(IncrementalTaskAction.java:50)
        at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:39)
        at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:26)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$1.run(ExecuteActionsTaskExecuter.java:124)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:199)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:110)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:113)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:95)
        ... 108 more
    

    这是因为图片使用了数字作为名字开头.

    这个是个坑.....

    我们再来修改下图片的名字

    image.png
    xml文件也做相应的修改
        <ImageView
            android:id="@+id/imageView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            tools:srcCompat="@drawable/p001" />
    

    再次编译,这时就可以了O(∩_∩)O


    image.png

    加载图片还是挺方便的.

    下面尝试再添加个按钮,点击按钮后更换ImageView中的图片

    小实验

    首先添加个next按钮:

        <Button
            android:id="@+id/next"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="next" />
    

    并在代码中获取到按钮:

    next = (Button)findViewById(R.id.next);
    

    再为按钮设定好点击监听事件:

           next.setOnClickListener(new View.OnClickListener(){
                @Override
                public void onClick(View v) {
                    i++;
    
                    if(i % 2 != 0)
                        image.setImageResource(R.drawable.p123);
                    else
                        image.setImageResource(R.drawable.p001);
                }
            });
    

    基本就差不多了.

    全部代码

    MainActivity.java文件:

    package com.example.user.image;
    
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.Button;
    import android.widget.ImageView;
    
    
    public class MainActivity extends AppCompatActivity {
    
        Button next;
        ImageView image;
    
        int i = 0;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            next = (Button)findViewById(R.id.next);
            image = (ImageView) findViewById(R.id.imageView);
    
            image.setImageResource(R.drawable.p001);
    
            next.setOnClickListener(new View.OnClickListener(){
                @Override
                public void onClick(View v) {
                    i++;
    
                    if(i % 2 != 0)
                        image.setImageResource(R.drawable.p123);
                    else
                        image.setImageResource(R.drawable.p001);
                }
            });
        }
    }
    
    

    activity_main.xml文件

    <?xml version="1.0" encoding="utf-8"?>
    <android.support.constraint.ConstraintLayout 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">
    
    
        <ImageView
            android:id="@+id/imageView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            tools:srcCompat="@drawable/p001" />
    
        <Button
            android:id="@+id/next"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="next" />
    
    </android.support.constraint.ConstraintLayout>
    

    运行效果:


    image.png

    点击按钮后:


    image.png

    相关文章

      网友评论

        本文标题:Android应用开发笔记之ImageView使用(六)

        本文链接:https://www.haomeiwen.com/subject/dryirctx.html