[英]Change Image of an ImageButton into an Image from Gallery Android
[英]Opening a gallery from ImageButton in Android app
我正在尝试制作一个ImageButton来打开带有图像的图库。 我现在想简化一下-仅在单击图像以打开带有几张图片的图库时。 但是我不确定该怎么做。 我在Internet上进行搜索,发现其他人正在使用XML代码来调用一种Java方法-OnClick。 我在这里有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还是很陌生,但是希望我能做到。
编辑:
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;
}
}
}
首先,您必须创建一个扩展活动的类,如下所示:
public class Main extends Activity{}
1.然后重写一个称为OnCreate()
的方法,该方法在活动启动时启动。
在名为setContentView(R.layout.yourLayout)
onCreate块方法中重写,以便活动显示xml文件。
然后获取对该按钮的引用,以便您可以通过以下方式进行收听: 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
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.