在新的 Activity 中读取 EXIF 数据到 textView

发布于 2024-10-28 09:27:29 字数 2389 浏览 4 评论 0原文

我已经能够将选定的图像从网格视图传递到新的全屏活动。我现在尝试从图像中捕获 EXIF 数据并将其传递到新的活动中。

从网格视图传递 int 的第一个活动似乎工作正常。

public class test extends Activity {
public static int pos;


@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.thumb);



    GridView gridview = (GridView) findViewById(R.id.thumbgridview);
    gridview.setAdapter(new tImageAdapter(this));


    gridview.setOnItemClickListener(new OnItemClickListener() {
        public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
             Intent intent = new Intent(test.this,test2.class);
                pos=position;
                intent.putExtra("pos", pos);
                startActivity(intent);
            finish();




        }
    });}
}

显示完整图像的第二个活动似乎工作正常。

public class test2 extends Activity {


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


        Bundle bundle= getIntent().getExtras();
        ImageView image = (ImageView) findViewById(R.id.imagefull);

        int pos = bundle.getInt("pos");
        bundle.getFloat(ExifInterface.TAG_MAKE);

        tImageAdapter obj = new tImageAdapter(this);
        image.setImageResource(obj.tThumbIds[pos]);

        Button bDIR = (Button) findViewById(R.id.bDIR);
        bDIR.setOnClickListener(new OnClickListener() {

            public void onClick(View v) {

                Intent intent = new Intent(test2.this,Direct.class);                   

                intent.putExtra(ExifInterface.TAG_MAKE, 0);
                startActivity(intent);
            finish();







            }


        });

现在,当我继续进行最后一个活动时,我在文本视图中看到的只是“Make”一词。

    public class Direct extends Activity {

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

           Bundle bundle= getIntent().getExtras();

            bundle.getFloat(ExifInterface.TAG_MAKE);

    TextView textview = (TextView) findViewById(R.id.dirtext);
    textview.setText(ExifInterface.TAG_MAKE);



    }   
}

我在调试中没有收到任何错误,也没有出现任何强制关闭问题。我有什么遗漏的吗?我只使用 java 几个星期,但这种类型的活动似乎应该是可行的。 (或者我只是个白痴)

谢谢!

I've been able to pass a selected image from grid view to a new full screen activity. I am now trying to capture the EXIF data from the image and pass it into a new activity.

The first activity of passing the int from grid view seems to be working fine.

public class test extends Activity {
public static int pos;


@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.thumb);



    GridView gridview = (GridView) findViewById(R.id.thumbgridview);
    gridview.setAdapter(new tImageAdapter(this));


    gridview.setOnItemClickListener(new OnItemClickListener() {
        public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
             Intent intent = new Intent(test.this,test2.class);
                pos=position;
                intent.putExtra("pos", pos);
                startActivity(intent);
            finish();




        }
    });}
}

The second activity which displays the full image seems to be working fine.

public class test2 extends Activity {


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


        Bundle bundle= getIntent().getExtras();
        ImageView image = (ImageView) findViewById(R.id.imagefull);

        int pos = bundle.getInt("pos");
        bundle.getFloat(ExifInterface.TAG_MAKE);

        tImageAdapter obj = new tImageAdapter(this);
        image.setImageResource(obj.tThumbIds[pos]);

        Button bDIR = (Button) findViewById(R.id.bDIR);
        bDIR.setOnClickListener(new OnClickListener() {

            public void onClick(View v) {

                Intent intent = new Intent(test2.this,Direct.class);                   

                intent.putExtra(ExifInterface.TAG_MAKE, 0);
                startActivity(intent);
            finish();







            }


        });

Now when I proceed to the final activity all I am seeing in the text view is the word Make.

    public class Direct extends Activity {

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

           Bundle bundle= getIntent().getExtras();

            bundle.getFloat(ExifInterface.TAG_MAKE);

    TextView textview = (TextView) findViewById(R.id.dirtext);
    textview.setText(ExifInterface.TAG_MAKE);



    }   
}

I am not getting any errors in debug and there hasn't been a single force close issue. Is there something I am missing? I've only been working with java for a couple weeks but this type of activity seems like it should be doable. (or I'm just an idiot)

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

緦唸λ蓇 2024-11-04 09:27:29

bundle.getFloat(ExifInterface.TAG_MAKE); 不读取任何内容。您实际上无法从图像文件中读取 Exif 数据。您只需在 TextView 中显示名为 ExifInterface.TAG_MAKE 的静态字符串的内容即可。

该文档可用:ExifInterface。您将需要执行以下操作:

ExifInterface exifReader = new ExifInterface(filename);
textview.setText(exifReader.getAttribute(ExifInterface.TAG_MAKE));

bundle.getFloat(ExifInterface.TAG_MAKE); does not read anything. You are nowhere actually reading the Exif data from the image file. You simply are showing in the TextView the content of the static String named ExifInterface.TAG_MAKE.

The documentation is available: ExifInterface. You will need to do something like:

ExifInterface exifReader = new ExifInterface(filename);
textview.setText(exifReader.getAttribute(ExifInterface.TAG_MAKE));
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文