0

画像付きのギャラリーを開く ImageButton を作成しようとしています。私は今のところ簡単にしようとしています - ちょうど画像をクリックしてギャラリーを開いて数枚の写真を表示したときです。しかし、私はそれを行う方法がわかりません。インターネットで検索したところ、他の人が 1 つの 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に非常に慣れていませんが、うまくいけばうまくいきます。

編集:

これは私を大いに助けた素晴らしいチュートリアルです。

4

2 に答える 2

2
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;
        }
       }
}
于 2012-10-24T11:27:08.783 に答える
1

まず、次のようなアクティビティを拡張するクラスを作成する必要があります。

 public class Main extends Activity{}

OnCreate()1. 次に、アクティビティの起動時に起動するメソッドをオーバーライドします。

  1. setContentView(R.layout.yourLayout)アクティビティが xml ファイルを表示するように呼び出される onCreate ブロック メソッドでオーバーライドします。

  2. 次に、ボタンへの参照を取得して、次のように聞くことができます。Button myButton = (Button) findViewById(R.id.button1);

クラスに OnClickListener を実装した場合は、実装されたメソッドで:

@Override
public void onClick(View v) {
if(v.getItemId() == R.id.button1){
//do what you want here:
startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("content://media/external/images/media/16"))) //As deeper answered to open the gallery
}
于 2012-10-24T11:53:51.573 に答える