如何从不同的XML更改ImageView源?

鸟间

我想在弹出窗口中更改图像。我正在尝试更改test.xmlcontentView为时的ImageView图像源activity_main当我尝试调用imageView.setImageResource(android.R.drawable.ic_menu_help);它给我时,nullpointerexception我意识到我必须使用充气方法,但是当我使用它时,它并没有达到我想要的效果。我知道对此有很多疑问,但没有一个问题真正对我有帮助。这是activity_main.xml:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout

    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/relative"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.example.android.popupwindow.MainActivity">

    <Button
        android:text="Test"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/button"
        android:layout_centerVertical="true"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true" />

</RelativeLayout>

test.xml:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@android:color/holo_blue_dark"
    android:id="@+id/test1"
    >
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/linear1">

        <ImageView
            android:layout_width="75dp"
            android:layout_height="75dp"
            android:src="@android:drawable/btn_star_big_on"
            android:id="@+id/imageView1"
            android:layout_weight="1"
             />
    </LinearLayout>

</RelativeLayout>

我的main.java:

public class MainActivity extends AppCompatActivity {

    private PopupWindow popupWindow;
    private RelativeLayout relativeLayout;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Button test = (Button) findViewById(R.id.button);
        relativeLayout = (RelativeLayout) findViewById(R.id.relative);

        final View view1 = getLayoutInflater().inflate(R.layout.test, null);
        ImageView imageView = (ImageView) view1.findViewById(R.id.imageView1);
        imageView.setImageResource(android.R.drawable.ic_menu_help); //Image source is not changed in my popupWindow, 
                                                                     // but it is changed when I call relativeLayout.addView(view1);

        test.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                //relativeLayout.addView(view1); // <-- this does the trick, but its not what i want
                View container = getLayoutInflater().inflate(R.layout.test, null);

                popupWindow = new PopupWindow(container, android.app.ActionBar.LayoutParams.MATCH_PARENT, android.app.ActionBar.LayoutParams.WRAP_CONTENT, true);
                popupWindow.showAtLocation(relativeLayout, Gravity.BOTTOM, 0, 0);
                container.setOnTouchListener(new View.OnTouchListener() {
                    @Override
                    public boolean onTouch(View view, MotionEvent motionEvent) {
                        popupWindow.dismiss();
                        return true;
                    }
                });
            }
        });
    }
}
ach

您正在夸大两个单独的视图。显然,您在其中一项中所做的工作不会对另一项产生影响。您应该将弹出视图设置为最初的放大视图:

popupWindow = new PopupWindow(view1,
        RelativeLayout.LayoutParams.MATCH_PARENT, 
        RelativeLayout.LayoutParams.WRAP_CONTENT,
        true);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Android中更改ImageView源

来自分类Dev

如何从不同的类动态更改视图背景颜色

来自分类Dev

如何从不同的类更改活动布局中的属性?

来自分类Dev

如何以编程方式更改ImageView源几次?

来自分类Dev

如何从不同位置加载hibernate.cfg.xml

来自分类Dev

如何从不同的XML布局文件使用ListView

来自分类Dev

如何使用DOMDocument更改xml源

来自分类Dev

如何从不同的软件包源中获取安装软件包

来自分类Dev

Ubuntu 16.04如何从不同的组合键中选择每种文本输入语言源

来自分类Dev

如何在PowerShell中从不同的xml节点动态读取特定的XML属性

来自分类Dev

更改ImageView源不会正确更改ImageView的图像

来自分类Dev

从不同的脚本更改js变量

来自分类Dev

从不同的视图更改视图 textLabel

来自分类Dev

在node.js / angular应用中从不同主机查询数据时,如何服从访问控制源异常?

来自分类Dev

无法从不同的包源强制转换java对象

来自分类Dev

无法从不同的包源强制转换java对象

来自分类Dev

如何从不同的线程添加行并更改DataGridView中的单元格值?

来自分类Dev

Firebase 如何处理从不同设备对同一节点所做的更改?

来自分类Dev

从不同的类调用静态方法时,如何更改对象的值?

来自分类Dev

如何在调试和发布模式下从不同位置加载Spring bean xml配置

来自分类Dev

如何更改iframe源

来自分类Dev

如何更改iframe源

来自分类Dev

Java:如何从不同的模块读取文件?

来自分类Dev

如何从不同角度旋转视图?

来自分类Dev

如何从不同页面提取表?(蟒蛇)

来自分类Dev

如何从不同的程序集中获取EmbeddedResource?

来自分类Dev

如何从不同的类访问NSMutableArray

来自分类Dev

如何从不同的网站调用webmethod

来自分类Dev

CakePHP如何从不同的表获取照片?

Related 相关文章

  1. 1

    如何在Android中更改ImageView源

  2. 2

    如何从不同的类动态更改视图背景颜色

  3. 3

    如何从不同的类更改活动布局中的属性?

  4. 4

    如何以编程方式更改ImageView源几次?

  5. 5

    如何从不同位置加载hibernate.cfg.xml

  6. 6

    如何从不同的XML布局文件使用ListView

  7. 7

    如何使用DOMDocument更改xml源

  8. 8

    如何从不同的软件包源中获取安装软件包

  9. 9

    Ubuntu 16.04如何从不同的组合键中选择每种文本输入语言源

  10. 10

    如何在PowerShell中从不同的xml节点动态读取特定的XML属性

  11. 11

    更改ImageView源不会正确更改ImageView的图像

  12. 12

    从不同的脚本更改js变量

  13. 13

    从不同的视图更改视图 textLabel

  14. 14

    在node.js / angular应用中从不同主机查询数据时,如何服从访问控制源异常?

  15. 15

    无法从不同的包源强制转换java对象

  16. 16

    无法从不同的包源强制转换java对象

  17. 17

    如何从不同的线程添加行并更改DataGridView中的单元格值?

  18. 18

    Firebase 如何处理从不同设备对同一节点所做的更改?

  19. 19

    从不同的类调用静态方法时,如何更改对象的值?

  20. 20

    如何在调试和发布模式下从不同位置加载Spring bean xml配置

  21. 21

    如何更改iframe源

  22. 22

    如何更改iframe源

  23. 23

    Java:如何从不同的模块读取文件?

  24. 24

    如何从不同角度旋转视图?

  25. 25

    如何从不同页面提取表?(蟒蛇)

  26. 26

    如何从不同的程序集中获取EmbeddedResource?

  27. 27

    如何从不同的类访问NSMutableArray

  28. 28

    如何从不同的网站调用webmethod

  29. 29

    CakePHP如何从不同的表获取照片?

热门标签

归档