1.介绍
主要实现的是通过网络接口获取图片到本地TV软件中进行展示。
2.项目布局
这里的布局只有三个文件,就是框起来的文件,其余的文件是后一个项目使用到的。
3.获取网络权限
只需要在AndroidManifest.xml的这个位置加上这句话就可以了,作用就是开启网络权限,因为我们的图片是从网络上获取的。
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
4.activity_main2布局文件
效果比较简单,因为只是想实现一个点击获取图片的功能。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".Main2Activity"
>
<ImageView
android:layout_width="500dp"
android:layout_height="300dp"
android:background="@color/lb_basic_card_bg_color"
android:id="@+id/imageView"/>
<Button
android:layout_width="200dp"
android:layout_height="100dp"
android:id="@+id/btn"
android:hint="点击获取图片"
android:background="@color/search_opaque"/>
</LinearLayout>
5.colors.xml
这个文件主要是放一些颜色配置,在上面的activity_main2.xml文件中使用到了。
<resources>
<color name="background_gradient_start">#000000</color>
<color name="background_gradient_end">#DDDDDD</color>
<color name="fastlane_background">#0096a6</color>
<color name="search_opaque">#ffaa3f</color>
<color name="selected_background">#ffaa3f</color>
<color name="default_background">#3d3d3d</color>
</resources>
6.Main2Activity
public class Main2Activity extends Activity {
private Button button;
private ImageView imageView;
String url = "https://api.ixiaowai.cn/gqapi/gqapi.php";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
button = (Button) findViewById(R.id.btn);
imageView = (ImageView) findViewById(R.id.imageView);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
new Thread(new Runnable() {
@Override
public void run() {
Bitmap bmp = getURLimage(url);
Message msg = new Message();
msg.what = 0;
msg.obj = bmp;
handle.sendMessage(msg);
}
}).start();
}
});
}
//在消息队列中实现对控件的更改
private Handler handle = new Handler() {
public void handleMessage(Message msg) {
switch (msg.what) {
case 0:
Log.d("Main2Activity","handlemessage");
Bitmap bmp=(Bitmap)msg.obj;
imageView.setImageBitmap(bmp);
break;
}
};
};
//加载图片
public Bitmap getURLimage(String url) {
Bitmap bmp = null;
try {
URL myurl = new URL(url);
// 获得连接
HttpURLConnection conn = (HttpURLConnection) myurl.openConnection();
conn.setConnectTimeout(6000);//设置超时
conn.setDoInput(true);
conn.setUseCaches(false);//不缓存
conn.connect();
InputStream is = conn.getInputStream();//获得图片的数据流
bmp = BitmapFactory.decodeStream(is);//读取图像数据
is.close();
} catch (Exception e) {
e.printStackTrace();
}
return bmp;
}
}
代码比较简单,先是定义了网络图片的接口,这是一个开放接口,可以返回我们一张图片,然后设置了按键的点击事件,进行获取图片的操作,然后在handle中将图片传递给ImageView进行显示。
7.效果展示