我正在制作我的第一个应用程序,我需要一些帮助。
如何通过单击超链接文本打开已在我的应用程序中预设的图像?
我正在尝试
例如,
"参见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>
感谢
答案 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);