java - 在 Android 应用程序中从 ImageButton 打开图库

标签 java android gallery imagebutton

我正在尝试制作一个打开带有图像的图库的图像按钮。我现在试图让它变得简单 - 就在我单击图像打开包含几张图片的图库时。但我不知道该怎么做。我在 Internet 上进行了搜索,发现其他人有调用一种 Java 方法 - OnClick 的 XML 代码。我这里有 XML:

<ImageButton
   android:id="@+id/imageView5"
   android:layout_width="@dimen/overview_schedule_image_width"
   android:layout_height="match_parent"
   android:layout_marginTop="10dp"
   android:src="@drawable/red"
   android:onClick="buttonClick" />

XML 中还有更多代码,但我认为这是必要的。到目前为止效果很好。但现在我不确定在哪里放置“buttonClick”方法以及它应该包含什么。我已经做了这门课:

package org.imageGallery;

import org.imageGallery.actionbarcompat.ActionBarActivity;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.Gallery;

public class ButtonClickActivity extends ActionBarActivity implements OnItemSelectedListener, OnClickListener{

@Override
public void onClick(View v) {

}

@Override
public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,
        long arg3) {

}

@Override
public void onNothingSelected(AdapterView<?> arg0) {

}
}

我想“buttonClick”方法应该放在这里并且它应该获取图像。但是如何将它们返回到 XML 以及如何在图库中显示它们?我对 Android 还很陌生,但希望我能做到。

编辑:

Here is a great tutorial that helped me a lot.

最佳答案

startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("content://media/external/images/media/16"))); /** you can use your uri */

编辑: 对于图像/*

public class sdActivity extends Activity implements MediaScannerConnectionClient{
    public String[] allFiles;
private String SCAN_PATH ;
private static final String FILE_TYPE = "*/*";

private MediaScannerConnection conn;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    File folder = new File("/sdcard/youfoldername/");
    allFiles = folder.list();
 //   uriAllFiles= new Uri[allFiles.length];
    for(int i=0;i<allFiles.length;i++)
    {
        Log.d("all file path"+i, allFiles[i]+allFiles.length);
    }
  //  Uri uri= Uri.fromFile(new File(Environment.getExternalStorageDirectory().toString()+"/yourfoldername/"+allFiles[0]));
    SCAN_PATH=Environment.getExternalStorageDirectory().toString()+"/yourfoldername/"+allFiles[0];
    Log.d("SCAN PATH", "Scan Path " + SCAN_PATH);
    Button scanBtn = (Button)findViewById(R.id.scanBtn);
    scanBtn.setOnClickListener(new OnClickListener(){
    @Override
    public void onClick(View v) {
        startScan();
    }});
    }
    private void startScan()
    {
    Log.d("Connected","success"+conn);
    if(conn!=null)
    {
    conn.disconnect();
    }
    conn = new MediaScannerConnection(this,this);
    conn.connect();
    }
@Override
public void onMediaScannerConnected() {
    Log.d("onMediaScannerConnected","success"+conn);
    conn.scanFile(SCAN_PATH, FILE_TYPE);    
}
@Override
public void onScanCompleted(String path, Uri uri) {
    try {
        Log.d("onScanCompleted",uri + "success"+conn);
        if (uri != null) 
        {
        Intent intent = new Intent(Intent.ACTION_VIEW);
        intent.setData(uri);
        startActivity(intent);
        }
        } finally 
        {
        conn.disconnect();
        conn = null;
        }
       }
}

关于java - 在 Android 应用程序中从 ImageButton 打开图库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13048215/

相关文章:

java - 当我的 web 项目通过 maven 部署时无法在 JBoss 7 上运行

java - 如何延迟每一颗子弹? (Java-Slick2d-游戏)

java - 是否可以在jsf上使用xml-db作为数据库

Android:在 ListView 中对整数值进行排序

java - 从Eclipse导入Android Studio期间, “Obsolete dependency configuration found: compile View usage”是什么意思?

java - invalidate() 在空对象引用上

android - 下载图像,保存到存储,但图像库看不到该图像

java - 在AspectJ中排除带注释的方法

html - 在服务器上创建许多图像或在浏览器中调整大小?

php - 从 Woocommerce 的产品库中获取第一张图片的 URL