如何通过单击文本打开图像

时间:2013-12-03 08:02:01

标签: android

我正在制作我的第一个应用程序,我需要一些帮助。

如何通过单击超链接文本打开已在我的应用程序中预设的图像?

我正在尝试

例如,

"参见Image001"

当用户点击单词" Image001"时,一个窗口打开预设图片,当我按下后退按钮时它会关闭。

这是我到目前为止所拥有的

在strings.xml中

<string name="refer">Refer to Image001</string>

在activity_main.xml

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

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

<ScrollView
    android:layout_width="fill_parent"
    android:layout_height="match_parent" >

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_margin="5dp"
    android:gravity="left"
    android:text="@string/refer" />
</ScrollView>
</LinearLayout>

感谢

3 个答案:

答案 0 :(得分:0)

您必须拥有2个TextView。第一个将有文本:“参考”,第二个将有文本“Image001”。然后在第二个textview上设置一个单击侦听器,代码如下:

String url = "http://www.example.com";
Intent i = new Intent(Intent.ACTION_VIEW);
i.setData(Uri.parse(url));
startActivity(i);

答案 1 :(得分:0)

您必须首先将Id设置为xml文件中的textView,如下所示:

<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:gravity="left"
android:text="@string/refer" />

然后为您的textview设置setOnClickListener,如下面的代码:

    TextView tv= (TextView) findViewById(R.id.textView1);
    tv.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        //DO you work here
    }
});

onClick方法中执行此操作后,您可以像下面的代码一样调用图像

    String url = "http://www.xxx.com";
    Intent intent = new Intent(Intent.ACTION_VIEW);
    intent.setData(Uri.parse(url));
    startActivity(intent);

答案 2 :(得分:0)

执行此操作的最佳方法是使用DialogFragments。例如,此类扩展DialogFragment并在ImageView中显示图片。

public class MyDialogFragment extends DialogFragment {
    public MyDialogFragment newInstance (Bitmap targetPicture) {
        MyDialogFragment frag = new MyDialogFragment();
        Bundle args = new Bundle();
        args.putExtra("picture", targetPicture);
        frag.setArguments(args);
        return frag;
    }
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View v = inflater.inflate(R.layout.dialogfrag, container, false);
        Bitmap b = (Bitmap) getArguments().getExtra("picture");
        ImageView iv = (ImageView) v.findViewById(R.id.targetImageView);
        iv.setImageBitmap(b);
        return v;
    }

但是,您需要在布局文件夹中定义dialogfrag.xml,如下所示:

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

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

<ImageView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/targetImageView" />

</LinearLayout>

最后在你的活动中:

OnClickListener myClickListener = new OnClickListener() {
    @Override
    public void onClick(View v) {
        MyDialogFragment d = MyDialogFragment.newInstance(targetPicture) //replace targetPicture with the picture you want to display
        d.show();
    }
};
TextView tv = (TextView) findViewById(R.id.txt1);
tv.setOnClickListener(myClickListener);